2016-08-10 84 views
0

我們的客戶改變了關於我們的項目之一的一些大的新功能(讓我們稱之爲FA),現在他想要這個功能的子集,但以不同的方式集成(讓我們稱之爲FB),然後放入所有初始請求的特徵,但與在FB中完成的更改合併,重疊更改將從FB中獲取。部分git分支合併的最佳做法

我有這個混帳情況:

  • 主分支的穩定版本,現在是生產
  • FA分支

現在我創建了一個新的分支從FB高手。

我需要整合從FA一些變化,然後做了一些工作,後來在FB,並在年底完全合併FA把所有到主分支

什麼是做到這一點的最好辦法沒有變得瘋狂和維護如果可能的話,從FA和FB

回答

0

提交歷史你可以cherry-pick一些從FA分支提交到您的FB。使用cherry-pick您可以選擇要從FA中取出哪些提交,並將它們集成到您的FB中。

說你對你的FB分支,要提交一些從FA整合。

首先,你要對你的FA分支得到所有提交的名單

git log --oneline 

現在,當你拿到所有提交的 - 在你的顯示器SHA的提交信息

git checkout FB 

git cherry-pick SHA 

您也可以將--edit標記傳遞給上述說明。它將允許您編輯提交消息。

另一個有用的東西要注意,你可以將cherry-pick轉換成中轉區域使用--no-commit選項。這將把櫻桃採摘的承諾放入暫存區。此時您可以修改暫存區域並部分或全部提交。

如果你想保持你從櫻桃採摘的軌道。您可以添加-x選項。這會將源SHA添加到提交消息。此外,如果您想跟蹤誰選擇了櫻桃,請使用--signeoff選項。它會在提交消息中添加用戶名。

希望它有幫助。

參考

cherry-pick

+0

它不是那麼簡單......我需要挑選不是來自提交的所有更改 – giammin

+0

@giammin請參閱上面的更新:) –