主要是参照了这位大哥的文章(https://www.jb51.net/article/192271.htm)
二次参考:git push之后如何重新撤回 - 简书 (jianshu.com)
分为两种方法
第一种方法是: git reset --hard
git reset --hard version // 这个version可以通过Git log来拿 ,也可以通过 github上去看commit的提交记录。
git push -f // 强制覆盖线上
特点是:
git reset --hard 会把后面的提交记录全部给覆盖掉,
git log 显示的记录是
- 第三次提交 commitid :3
- 第二次提交 commitid :2
- 第一次提交 commitid :1
此时 如果我执行git reset --hard 1
这个时候执行git log记录只有一条了。 - 第一次提交 commitid :1
第二种方法是: git revert -v +版本号
比如:
git log 显示的记录是
-
第三次提交 commitid :3
-
第二次提交 commitid :2
-
第一次提交 commitid :1
这个时候我执行了git revert -v 2,这个时候会发生的事情是:会把第三次提交的东西保留, 但是第二次提交的东西会被撤销掉, 然后你可以进行修改在提交为第四次commit。
此时执行git log 显示记录: -
第四次提交 commitid :4
-
第三次提交 commitid :3
-
第二次提交 commitid :2
-
第一次提交 commitid :1