恢复git合并,同时允许以后进行相同的合并)

恢复git合并,同时允许以后进行相同的合并),git,merge,Git,Merge,恢复提交的git合并,同时保留在以后合并同一分支的选项的最佳方法是什么 这适用于以下情况:我将分支合并到HEAD中,然后决定目前不希望这些更改,但仍希望在以后某个时间将它们合并到HEAD中 “git revert-m 1”将代码还原为预合并状态,但分支仍以某种方式标记为“已合并”。因此,在以后的时间点重复合并同一分支是不起作用的 这应该是一个非常常见的问题(git是一个不断发展的工具),但我找不到一个简单的干净的解决方案(除了销毁git存储库并再次从远程将其取出)。我遗漏了什么吗?如果合并提交尚

恢复提交的git合并,同时保留在以后合并同一分支的选项的最佳方法是什么

这适用于以下情况:我将分支合并到HEAD中,然后决定目前不希望这些更改,但仍希望在以后某个时间将它们合并到HEAD中

git revert-m 1”将代码还原为预合并状态,但分支仍以某种方式标记为“已合并”。因此,在以后的时间点重复合并同一分支是不起作用的


这应该是一个非常常见的问题(git是一个不断发展的工具),但我找不到一个简单的干净的解决方案(除了销毁git存储库并再次从远程将其取出)。我遗漏了什么吗?

如果合并提交尚未推送,并且它是最上面的一个,则可以使用reset命令

git reset --hard HEAD^

请注意,所有未提交的更改都将丢失。

很抱歉,您浪费了您的分支

但有一个解决办法。诀窍是临时“重写”合并提交,以便它忘记分支是父级。假设
X
是合并提交:

git replace --graft X X^   # pretend that there is just one parent
git merge branch           # merge the branch again
git replace --delete X     # remove the replacement

如果尚未发布合并提交(推送到中央服务器),最好的解决方案是重写历史以删除合并提交

  • 如果合并提交后没有其他提交,请将标头重置为上一次提交:
  • git复位头^

  • 如果在合并提交之后还有其他提交,则需要重新设置基础并删除合并提交,同时重新应用其他提交
  • git-rebase-i

    如果已发布合并,则需要决定是重写历史记录以保留分支的适当合并潜力,还是简单地添加一个恢复提交。这将需要与可能下载合并的所有人交谈

    如果无法重写历史记录,则需要执行还原:

    git-m1


    在这种情况下,分支的未来合并将需要手动干预。您可能需要选择合并未拾取的提交,或者还原还原提交。

    哇,一旦我理解了您在这里所说的内容,这是一个有用的技巧。美好的哇,这是邪恶和天才的结合。