撤销已经提交的 push
有些时候,代码已经 push 到中央仓库了,才发现有个 commit 写错了。
这时候有两种情况:
- 出错内容在自己的 branch
- 出错的内容已经 合并到 master 了
出错的内容在你自己的 branch
自己的 branch 的某个 commit 出错时:
- 在本地使用
git rebase -i commit标识号
对之前的 commit 进行修改。 - 然后使用
git commit --amend
进行提交 - 再使用
git rebase --continue
把后面的 commits 应用上去 - 修改了本地的之后 使用
git push origin branch1 -f
把分支提交上去, -f
的作用是进行强制提交(忽略冲突),因为中央仓库可能有本地仓库没有的东西,这样提交上去中央仓库可能会丢西数据,git 会给出相应的警告,从而导致提交失败。
出错的内容已经合并到了 master
使用 git revert HEAD^
来撤销已经 push 到 master 的 commit
git revert HEAD^
解释:
- 上面这行代码就会增加一条新的 commit,它的内容和需要撤销的 commit 是相反的,从而和倒数第二个 commit 相互抵消,达到撤销的效果
- 在本地进行 revert 完成之后,再把新的 commit 提交到中央仓库