问题场景:
git push谬误提交时撤销此次谬误提交
1.git reset:
原理:
批改head指针地位,将head指针指向之前的某个版本,指标版本
应用办法:
- git log 查看版本号,或者gitlab上查看版本号
- git reset --hard 指标版本号(此时本地head指针以指向之前的版本)
git push -f 提交更改(如果用git push 会报错,因为此时本地代码落后于近程仓库代码,所以用git push -f强推上去)
2.git revert:
原理:
git revert次要用于‘反做’某一个版本,罕用场景为两次先有后提交‘版本2’和‘版本3’,然而‘版本2’中因为代码问题须要撤销提交,版本3中的提交又要保留。
应用办法:
- git log查看版本号
- git revert -n 版本号(此版本号为须要摘除的版本号)
- 呈现抵触解决抵触。
- git add . (有抵触时)
- git commit -m
- git push
revert其余相干:
1.回滚某次提交
git revert commitId
2.回滚屡次提交
git revert old-commitId^..new-commitId
如果咱们想把这三个revert不主动生成三个新的commit,而是用一个commit实现,能够这样:
git revert -n old-commitId^..new-commitId