1.git reset
回到某次提交,相当于直接删除某一指定commit_id之后的所有提交,来实现回滚到指定版本处。其后的所有commit都被丢弃
如图所示:
1.1.回退
$ git reset--hard HEAD^ 回退到上个版本
$ git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前
$ git reset --hard commit_id 退到/进到 指定commit的sha码
1.2.强制推送远程
$ git push origin HEAD --force
如果使用这个方法失效了,提示 :不允许强制将代码推送到此项目上受保护的分支
remote: GitLab: You are not allowed to force push code to a protected branch on this project.
2.git revert
撤销指定的commit内容,相当于进行一次反向commit,生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留
如图所示:
2.1.回退某一次
$ git revert commit_id 退到/进到 指定commit的hash码
2.2.回退某几次
执行命令时可以指定多个提交,多个提交通过空格分割,按照commit时间先后顺序排列
$ git revert c4 c3 c2 或者使用区间 git revert c1..c4
这里的区间是不包含左边的,所以上述命令会撤销c2,c3,c4,而c1不会被撤销。
请注意多个提交的顺序,并且发生冲突仍旧需要手动解决。
$ git revert --continue 继续 需要解决冲突
$ git revert --abort 停止撤销
2.3.撤销分支合并
假如合并分支需要撤销,加上-m表示撤回哪一个分支的。它的参数是1或2,1是主分支
保留第一个分支为主线
git revert -m 1 commit_id
2.4.推送远程
$ git push origin
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。