1

1.git reset

回到某次提交,相当于直接删除某一指定commit_id之后的所有提交,来实现回滚到指定版本处。其后的所有commit都被丢弃
如图所示:
image.png

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都会被保留
如图所示:
image.png

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


fuGUI
1.6k 声望1.9k 粉丝

The best time to plant a tree is ten years ago, and the second,let us start