如何在git中合并樱桃挑选的提交?

时间:2016-01-12 01:05:09

标签: git github merge cherry-pick

我有2个主要分支masterdevelopment。我最近不得不推送一个已经合并到development的提交的修补程序,为此我从development挑选了提交,创建了一个新的修补程序分支,添加了另一个修复提交,并合并了那到master。我的问题是,如何在不弄乱git提交历史的情况下将新提交合并到development

粗略地说,我做了什么:

git cherry-pick <commit SHA>
git checkout -b hotfix-branch
[make more changes]
git commit -m "Fix issue"
git checkout master
git merge hotfix-branch

现在,如果我在git diffmaster之间查看development,那么来自development的旧提交就会显示出来,因为它们已经被挑选出来,因此提交了不同的提交同样的变化。合并回development和&#34;修复&#34;的最佳方式是什么?这些差异?

编辑添加:或者,我应该在这样的情况下做些什么,其中修补程序包含development分支中的提交?

1 个答案:

答案 0 :(得分:0)

您需要从历史树中“向下”选择修复程序,以便稍后可以将其“向上”干净地合并到其他分支中。

  1. 检出合并基础(通常,有时在树的下方)。
  2. 摘樱桃A导致提交新的X
  3. X合并回到两个分支。

此后,两个分支将共有X,这意味着它们都包含修订。