我们有人提交了一些仅部分 merge 的文件。简而言之,任何 pull 的人都会得到一个损坏的项目。
我们通过执行 git --reset HARD 解决了这个问题。伟大的!现在的问题是我们落后了 2 个提交。但我们不想要这两次提交。我们想假装 xxyy 之后的一切都没有发生过。
这里最好的选择是什么?
最佳答案
您已经解决了该问题,至少在本地是这样。但错误的提交仍然存在于远程。您基本上有两个选择:
您可以使用
git revert
恢复远程上的两个提交:git revert <SHA-1 of commit #1> git revert <SHA-1 of commit #2>
此选项基本上会在远程分支上添加两个新提交,这将有效地撤消原始提交所做的任何操作。
您可以对分支进行交互式 rebase 并删除两个提交:
git rebase -i
在此选项中,您将完全删除两个错误的提交。但请注意,这也会重写远程分支的历史记录,这可能会迫使您组中的某些人(包括您自己)删除分支的本地副本并从远程 check out 全新版本。
执行git revert
可能是最安全的选择,因为它不会伤害任何拥有相关分支本地副本的其他人。
关于git - 我做了一个 git Reset HARD 来修复错误的提交,但现在我的分支落后了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36395833/