根据SO线程撤消提交不起作用

时间:2012-12-17 15:16:56

标签: git

我在这里关注这个问题,但有些事情对我不起作用......

How to undo last commit(s) in Git?

我做了git reset --hard HEAD~1三次,我看到了我想要的代码,当我执行git状态时,它表示你的分支在3个提交后面的origin / master后面,并且可以快速转发。是的,我退出了3次提交,所以看起来不错,但我现在如何提交并推送更改,以便我的远程仓库中的最新主机没有3次提交。

感谢, 迪安

2 个答案:

答案 0 :(得分:4)

你可以运行

git push --force

强制向后推动远程仓库。

答案 1 :(得分:1)

如果还没有人撤消origin回购的状态,请使用answer provided by SLaks

但是如果你不确定,那么强迫推动不是最好的主意,因为它可能会给你的开发者带来问题。

要以可以与origin一起使用的方式恢复最后三次提交,请使用git revert。这将创建一个新的提交,恢复您已经提交的提交。

如果您的历史记录如此

A--B--C--D--E--HEAD

并且您要删除CDE,按以下顺序还原它们

git revert E
git revert D
git revert C

然后,你将提前3次提交 origin,你可以毫不费力地推进。如果某人已撤消对CDE的更改,则会在下一个pull时将其删除。


顺便说一下:这是你提到的问题的未被接受的答案也建议:
https://stackoverflow.com/a/6376039/520162撤消公开提交