“合并”两个相同的分支

时间:2016-08-03 15:39:50

标签: git git-merge

在我的回购中,我有一个主分支和一个bugfix分支。我做了我的bugfix,并将其合并为master。然后,在一场愚蠢的错误中,我做了不可思议的事情。在与git commit --amend合并后,我添加了3个字符。我重写了历史。然后,令我沮丧的是,它只影响了master,而不是bugfix,所以如果我运行(在master上)git branch --no-merged我看到bugfix没有合并。所以,我检查错误修正并进行相同的更改,使git diff bugfix master不返回任何内容,然后从主人再次检查git branch --no-merged,它仍然说错误修复未合并。所以,现在我有2个相同的分支,我想要合并但不是,我不想使用另一个提交。我如何组合它们以便git将它们视为合并而git branch --no-merged不返回错误修复?

1 个答案:

答案 0 :(得分:1)

有时当你迷失在路上时,最谨慎的做法是在你没有迷路时将你的步骤回到前一点。在您的情况下,我将在master中撤消修改后的合并提交,并在bugfix中修改“修复”提交。然后重做合并而不做任何其他更改。

在错误修正中撤消错误提交:

git checkout bugfix       # switch to bugfix
git reset --hard HEAD~1   # nuke the fix commit

撤消master中的合并提交:

git checkout master       # switch to master
git reset --hard HEAD~1   # nuke the amended merge commit

现在您可以重做合并:

git merge bugfix

注意:此答案假设您尚未将任何内容推送到遥控器。如果有,那么您将需要使用git revert撤消错误提交,而不是重写历史记录。