我在这里关注这个问题,但有些事情对我不起作用......
How to undo last commit(s) in Git?
我做了git reset --hard HEAD~1
三次,我看到了我想要的代码,当我执行git状态时,它表示你的分支在3个提交后面的origin / master后面,并且可以快速转发。是的,我退出了3次提交,所以看起来不错,但我现在如何提交并推送更改,以便我的远程仓库中的最新主机没有3次提交。
感谢, 迪安
答案 0 :(得分:4)
你可以运行
git push --force
强制向后推动远程仓库。
答案 1 :(得分:1)
如果还没有人撤消origin
回购的状态,请使用answer provided by SLaks。
但是如果你不确定,那么强迫推动不是最好的主意,因为它可能会给你的开发者带来问题。
要以可以与origin
一起使用的方式恢复最后三次提交,请使用git revert
。这将创建一个新的提交,恢复您已经提交的提交。
如果您的历史记录如此
A--B--C--D--E--HEAD
并且您要删除C
,D
和E
,按以下顺序还原它们
git revert E
git revert D
git revert C
然后,你将提前3次提交 origin
,你可以毫不费力地推进。如果某人已撤消对C
,D
和E
的更改,则会在下一个pull
时将其删除。
顺便说一下:这是你提到的问题的未被接受的答案也建议:
https://stackoverflow.com/a/6376039/520162(撤消公开提交)