一、本地分支版本回退
-
用下面命令找到要回退的版本的commit id
git reflog
-
接着回退版本
git reset --hard commit id
二、远程分支版本回退
-
首先要回退本地分支
git reflog git reset --hard commit id
-
强制推送到远程分支
git push -f
注意:本地分支回滚后,版本将落后远程分支,必须使用强制推送覆盖远程分支,否则无法推送到远程分支
三、公共远程分支版本回退
-
例子1:撤销最近一次提交
git revert HEAD
-
例子2:撤销上上次的提交
注意:数字从0开始
git revert HEAD~1
-
例子3:撤销0ffaacc (commit id)这次提交
git revert 0ffaacc
注意:revert 是撤销一次提交,所以后面的commit id是你需要回滚到的版本的前一次提交。
使用revert HEAD是撤销最近的一次提交,如果你最近一次提交是用revert命令产生的,那么你再执行一次,就相当于撤销了上次的撤销操作,换句话说,你连续执行两次revert HEAD命令,就跟没执行是一样的
使用revert HEAD~1 表示撤销最近2次提交,这个数字是从0开始的,如果你之前撤销过产生了commi id,那么也会计算在内的。
如果使用revert撤销的不是最近一次提交,那么一定会有代码冲突,需要你合并代码,合并代码只需要把当前的代码全部去掉,保留之前版本的代码就可以了