2014-10-31 79 views
1

我曾希望得到一些想法。我有三個分支:櫻桃採摘Git中的一系列提交

  • 具體
  • 功能分支

master包含通用代碼庫,這樣,如果我想以後建立分支機構,以創建一個新類型的實現,我可以輕鬆地做到這一點。但目前specific是我的主要開發分支。

所以我支specific關進feature-branch測試一項新功能,一旦我很滿意我合併feature-branchspecific

但是有一些提交是在specific中實現特定的,我不想合併回主。大部分代碼都是通用更改,我確實想要合併回來。

我合併了從feature-branch約30變化爲specific。在這30箇中,大概有20個我想從specific合併成master

我這樣做的最好方法是什麼?

我應該只是櫻桃挑選我想合併到master的每個提交?如果是這樣,我應該按照反向時間順序(即獲得我想合併的最老的提交,然後是第二個最老的提交,等等 - 櫻桃把它們全部選回master)。

歡迎任何想法。由於

回答

1

這是最好的(如果你還沒有推specific任何遠程回購尚)至:

  • 重新排序specific分支的提交(一個爲master,那麼具體實現的一個) ,與interactive rebase
  • 合併只有20個先提交到master(這將是一個快進合併)
    您可以創建在最近的20個提交(git branch tmp SHA1)的臨時分支,分支合併(git checkout master ; git merge tmp

那樣,沒有cherry-picking,這意味着沒有重複的提交。


如果特定一直推,再挑肥揀瘦能正常工作,從舊開始的最新承諾。

在 「cherry-pick A..B」 的形式,A應該比B老。 如果它們的順序錯誤,則該命令將自動失敗。

+0

嗨,感謝您的回覆。 '具體'已經被遠程推送不幸...... – b85411 2014-10-31 06:50:43

+0

@ b85411好的,我已經編輯了涵蓋兩種情況的答案。 – VonC 2014-10-31 06:53:44