我在这里关注这个 SO 问题,但有些东西对我不起作用......
我做了git reset --hard HEAD~1
三遍,我看到了我想要的代码,当我执行 git status 时,它说 You branch is behind origin/master by 3 commits 并且可以快进。是的,我退出了 3 次提交,所以这看起来不错,但是我现在如何提交并推送更改,以便我的远程仓库中最新的 master 没有 3 次提交。
谢谢,院长
我在这里关注这个 SO 问题,但有些东西对我不起作用......
我做了git reset --hard HEAD~1
三遍,我看到了我想要的代码,当我执行 git status 时,它说 You branch is behind origin/master by 3 commits 并且可以快进。是的,我退出了 3 次提交,所以这看起来不错,但是我现在如何提交并推送更改,以便我的远程仓库中最新的 master 没有 3 次提交。
谢谢,院长
你可以跑
git push --force
强制及时向后推送远程仓库。
如果还没有人提取您的origin
回购状态,请使用SLaks 提供的答案。
但是,如果您对此不确定,那么强制推送并不是最好的主意,因为它可能会导致您的开发人员出现问题。
要以一种可以使用 with 的方式恢复您的最后三个提交origin
,请使用git revert
。这将创建一个新的提交来恢复您已经提交的内容。
如果你的历史看起来像这样
A--B--C--D--E--HEAD
并且您想按以下顺序删除和还原C
它们D
E
git revert E
git revert D
git revert C
然后,您将提前 origin
3 次提交,您可以毫不费力地推动。C
如果有人已经取消了您对、D
和的更改E
,他们将在下一次时被删除pull
。
顺便说一句:这是您引用的问题的不被接受的答案也建议:
https ://stackoverflow.com/a/6376039/520162 (撤消公共提交)