Git:在不影响其他提案的情况下恢复旧合并

时间:2017-05-01 19:16:47

标签: git atlassian-sourcetree

当我进入提交时我想恢复(反向提交)它给了我

  

错误:提交X是合并但没有给出-m选项。

这就像是一个3周的提交,很多其他人在合并之后推动了其他事情。我想删除在该合并中所做的更改,而不会造成大量冲突。

如果我重置为它之前的提交(提交Y),那么此后的所有内容都将消失,如果我按这样推送,我假设如果有人更改了存在于的文件中的任何内容,那么会有很多冲突提交(在Y而不是X)。

有没有干净,希望这么简单的方法呢?对不起,如果我假设不正确的事情,我是一个git新手。请放轻松我。

1 个答案:

答案 0 :(得分:2)

您不想使用git reset,因为这会重写已推送的历史记录。如果可能的话应该避免这种情况。

错误消息告诉您要执行的操作:-m选项告诉git要保留的两个父提交中的哪一个,以便它可以还原另一个:

git revert -m 1 <hash of the merge commit>

请注意,如果您希望将来在某个时刻合并来自此合并提交的更改,则需要还原此提交(即还原更改的提交),然后再将所有内容合并。 / p>

博文Undoing Merges提供了有关此内容的更多信息,并且可能比我更好地解释了这一点。