恢复承诺,只重新申请其中一些



我知道这必须是以前被问到的,但是我正在努力进行足够准确的搜索以找到答案。

在我的存储库中,我的提交不好,然后是两个良好的提交。我需要删除不良提交,但保留了好的提交。我该怎么做?

我想我必须恢复到遵循不良糟糕的第一个好提交,库存现在未经跟踪的更改,恢复不良提交,然后重新承担藏匿的更改?

编辑:

我的问题不准确。实际上,我的合并不好,然后是两个好的提交。我觉得这是一种不同的情况,原来的(不正确(问题已经回答,所以我会问一个新问题。

快速答案:只需恢复不良提交。

更长的答案:基本上您有2个选项:

  1. 2个好提交与不良提交无关。如果他们不触摸相同的文件或文件中的相同区域,则可以简单地恢复"不良"提交,并且应该没有冲突而起作用。

  2. 一个好的提交与不良提交有关。在这种情况下,您将有冲突试图恢复"不良"提交。无论曾经,即使您删除了良好的提交,然后删除不良提交。您仍然会发生冲突,试图重新应用良好的提交。

如此底线 - 只需恢复不良提交,并修复您可能遇到的任何冲突。

如果它是一个私人分支,没有其他人看到它并将自己放在上面,请考虑重写历史记录以删除不良提交:

git checkout my-branch~3 # go to the revision previous to the one that is bad
git cherry-pick my-branch~2..my-branch # apply only the last two commit from my branch
# if you like the result
git branch -f my-branch # set my-branch where I am
git checkout my-branch

应该做

最新更新