合并分支,但有一个修改过的提交

时间:2014-05-23 14:26:19

标签: git merge branch branching-and-merging

我有一个合作者的git分支,我想合并。问题是其中一个早期提交存在错误(例如,必须更改提交消息或者必须修复某些EOL字符)。

如果我在本地分支中挑选提交然后进行交互式rebase +编辑,则需要2分钟才能解决该问题。

问题在于,如果我这样做,那么协作者的原始分支将不再被各种工具GitHub视为合并。

是否有工作流允许我将分支与修订合并,仍然将原始分支视为已合并?

3 个答案:

答案 0 :(得分:1)

如果你想保留你的协作者的原始分支,那么你可以使用“正确的空白空白”消息来执行你的cherry-pick + rebase然后git merge -s ours badbranch,然后如果你还没有在你的主分支上合并到那个正常的空白分支

答案 1 :(得分:1)

以下是我合并需要小修补程序的分支的工作流程,改编自accepted solution

我们要合并的分支是collaborator/fix-bug-10

首先,我们设置了一个本地分支,然后挑选协作者分支中的所有提交。

git checkout master
git branch collaborator-fix-bug-10 # hyphen instead of slash
git checkout collaborator-fix-bug-10
git cherry-pick COMMIT1
git cherry-pick COMMIT2
git cherry-pick COMMIT2

然后我们解决问题。

git rebase -i master # show commits between HEAD and master
# fix problems
git rebase --continue

之后我们将合作者的分支与我们的分支“合并”。这是公认解决方案的要点。

git merge --strategy ours collaborator/fix-bug-10

最后我们将本地分支合并到我们的主分支。

git checkout master
git merge --ff-only collaborator-fix-bug-10
git branch --delete collaborator-fix-bug-10

答案 2 :(得分:0)

樱桃选择在哪里进入?在原始分支上执行交互式rebase,编辑提交消息,然后正常合并分支。