有两种方式可以撤销git的变化,一种是git reset,另一种git revert。
-
git reset
git reset 通过向后移动分支参考来逆转变化,就好像从来没有做过提交。
撤销最近的一次提交:git reset HEAD^
或git reset HEAD~1
。git reset对自己的本地分支非常有用,如果撤销的分支已经 push 到远程,需要在 reset 后,再强制推送:git push origin <branch_name> --force
-
git revert
git revert <commit>
或git revert HEAD
git push origin <branch>
可以看出git revert HEAD
是通过引入新的commit c2'来逆转commit c2。