我有一个合作者的git分支,我想合并。问题是其中一个早期提交存在错误(例如,必须更改提交消息或者必须修复某些EOL字符)。
如果我在本地分支中挑选提交然后进行交互式rebase +编辑,则需要2分钟才能解决该问题。
问题在于,如果我这样做,那么协作者的原始分支将不再被各种工具GitHub视为合并。
是否有工作流允许我将分支与修订合并,仍然将原始分支视为已合并?
答案 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,编辑提交消息,然后正常合并分支。