3

我已经搜索了很多帖子,git reset --hard <commit>并将一个过早合并的分支重置为状态,并在历史记录中重新提交了一点。“master”的当前状态看起来不错,但git status表示我的本地分支落后于 origin/master 24 次提交,并且可以快进。如果不先再次合并原点/主控,我就无法推动。有没有办法跳过这些提交并说“我不想要它们”?

这是一个中央仓库设置,我的一位同事意外地将他长期运行的开发分支与 master 合并,无法弄清楚如何回溯,所以我试图为他做这件事。

重述命令(根据记忆,这是两天的磨难)

当我取来并检查主人时发现了错误,并通知了同事。他无法将其重置,所以...我做到了

git merge master origin/master
git reset --hard <commit_I_wanted>
git push # is rejected
git status # gives me the "behind by x commits, can be fast-forwarded" message

谢谢,汉斯

4

1 回答 1

3

如果您确定您的 git 历史记录是正确的版本并且您的同事没有进行任何更改,那么您可以使用以下命令:

git push --force

将来,请使用git revertinstead 进行新的提交,以撤消更改而不是重写历史记录。

同样, git push --force 将重写远程端的历史记录。你被警告了。

于 2012-06-19T15:57:20.820 回答