git撤销已push到远端仓库的提交
随着互联网时代的来临,代码项目多采用git仓库管理多人协同编码的方式。人非圣贤孰能无过,难免有时自己刚push到远端仓库的代码存在瑕疵需要修改,此时不必惊慌,我们可以利用git的强制覆盖远端仓库来实现撤销提交的目的。适用前提:待撤销的提交记录后暂无他人提交记录。
关键词: git、回退commit
人谁无过?过而能改,善莫大焉
– 左丘明《晋灵公不君》
记录以便查询,回退commit步骤如下。
Step1. 在本地其他路径重新克隆一份代码
接下来的操作均在新克隆的路径执行。
1 | git clone 远端代码仓库路径 |
Step2. 切换到要撤销提交的分支
1 | git checkout -b 自定义本地分支名 origin/对应远端分支名 |
查看当前分支
1 | git branch |
Step3. 获取前一次的提交commit id
默认连续显示最近几次提交记录和对应的commit id,输入q退出。这步操作是为了获取待撤销提交的上一次正常提交的commit id。
1 | git log |
Step4. 强制回退到上一次提交节点
强制回退本地仓库代码到远端仓库上一次正常提交到的记录节点【注意:此时所有代码修改均会被删除,这也是为什么第一步选择在其他路径重新克隆代码和执行回退操作】
1 | git reset --hard 【待撤销提交的前一次提交的commit id】 |
Step5. 再次查询分支的提交记录
检验本地此路径仓库的提交记录是否不含待撤销的提交,输入q退出。
1 | git log |
Step6. 强制覆盖远端仓库
强制用不含待撤销记录的本地仓库完全覆盖远端仓库。【注意:此操作后远端仓库会与本地仓库完全一致,请确保在待撤销记录之后暂无他人提交代码】
1 | git push origin HEAD --force |
至此,git撤销已push到远端仓库的提交已完成,接下来跳转到工作仓库pull最新代码完善瑕疵吧!enjoy it :)
相关文章