2010-03-17 119 views
1

我有几个分支为当前项目定义,除了主分支之外的所有主分支都只有相同的小文件集(小于10)。同步两个只有几个文件不同的GIT分支

在主站中实现新功能后,我想用最少的努力将这些更改和附加内容复制到其他分支。这里推荐的方法是什么?

+2

出了什么问题'git的合并master'的?你只是想要一种方法来在一个命令中运行多个分支? – 2010-03-17 09:55:34

+0

@Jimmy,请在我的回答中查看第二段。让我知道你的想法。 – 2010-03-18 13:32:37

回答

2

你有三种选择:

  • merge:有趣的,如果掌握的所有改变需要一个分支是可见的,但事实并非总是如此

  • cherry-pick:只适用于某些提交到分支

  • rebase:最好的解决方案如果你的分支尚未推:你重播ŧ他对主

但顶部提交您的分支:在三种情况下,你需要签要整合变更所在的分支,并重复每个分支。

除非你的分支从一个到另一:

---o    branch B1 
    \ 
    ----o  branch B2 
      \ 
      ----o branch B3 

在这种情况下,您可以:

  • 合并更改到最具体的分支(B3这里) as recommanded in this FAQ
  • 完成B3的工作
  • 然后在父分支B2上合并(如果没有发生进化在B2,这其实是一个快进合并)
  • 重复的B1(即:完成工作的B2,git checkout B1git merge B2
0

当我固定在一个分支的一些重要的事情通常(可即使是高手),如果我想的一样修复被复制到另外一个分支,我做git checkout my_latest_featuregit merge --no-commit master

没试过cherry-pick,但我想,这就是我想最好的方式,因为摘樱桃只会合​​并该具体更改和git merge --no-commit master将尝试获取整个树(甚至除了最新的修补程序之外的其他提交)。

我总是讨厌任何篡改提交历史的命令。这就是为什么我从来没有rebase

更新:刚刚发现这个类似的问题:How to copy commits from one branch to another?