2010-03-17 163 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?