0

我在这里关注这个 SO 问题,但有些东西对我不起作用......

如何撤消 Git 中的最后一次提交?

我做了git reset --hard HEAD~1三遍,我看到了我想要的代码,当我执行 git status 时,它说 You branch is behind origin/master by 3 commits 并且可以快进。是的,我退出了 3 次提交,所以这看起来不错,但是我现在如何提交并推送更改,以便我的远程仓库中最新的 master 没有 3 次提交。

谢谢,院长

4

2 回答 2

4

你可以跑

git push --force

强制及时向后推送远程仓库。

于 2012-12-17T15:18:07.107 回答
1

如果还没有人提取您的origin回购状态,请使用SLaks 提供的答案

但是,如果您对此不确定,那么强制推送并不是最好的主意,因为它可能会导致您的开发人员出现问题。

要以一种可以使用 with 的方式恢复您的最后三个提交origin,请使用git revert。这将创建一个新的提交来恢复您已经提交的内容。

如果你的历史看起来像这样

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

并且您想按以下顺序删除和还原C它们DE

git revert E
git revert D
git revert C

然后,您将提前 origin3 次提交,您可以毫不费力地推动。C如果有人已经取消了您对、D和的更改E,他们将在下一次时被删除pull


顺便说一句:这是您引用的问题的不被接受的答案也建议:
https ://stackoverflow.com/a/6376039/520162 (撤消公共提交

于 2012-12-17T15:31:05.937 回答