[英]How to merge certain branches/partial-commits in git?
我有alpha
, beta
和master
分支。 我也有分支feature_a
, feature_b
, feature_c
和feature_d
。 然后,我:
feature_a
合並到alpha
feature_b
合並到alpha
feature_c
合並到alpha
feature_d
合並到alpha
feature_b
feature_d
存在問題(或者可能他們錯過了最后期限,並且仍在測試中),其余的都准備好進入beta
分支。
我怎樣才能僅將選擇的“分支”從alpha
合並到beta
分支中,以便僅feature_a
和feature_c
可以合並? 歷史和血統是否會保持不變(假設要素分支被修剪或刪除)?
我猜到了git merge beta feature_c...alpha
, git merge beta feature_a...alpha
(那些命令不起作用,但這是到目前為止我嘗試過的理論)。
如果只想合並一些分支,則可以只合並那些分支:
git merge beta feature_a feature_a
現在,如果您只想在開始發行時合並那些分支(即,當您將它們合並成alpha
)的狀態,那么,可以在合並時用feature_a_release-n
標簽對其進行標記。 feature_a_release-n
等...; 這樣就可以合並到beta
:
git merge beta feature_a_release-n feature_b_release-n
我們還可以考慮一種替代方法,因為在進行Beta測試之前,您可能理所當然地希望實際上合並它們之間的功能,以便將它們一起測試。 在這種情況下,您可能要針對每個發行版而不是alpha
分支,例如: alpha-release-n
。 而且,如果在創建此發行分支后發現功能分支存在問題,則可以創建一個新的分支,例如alpha-release-n.2
,其中不包含不需要的分支。
不過,最終的主觀判斷是:該工作流程每個團隊都有一個功能分支,這是幾年前我公司使用的工作流程。 從那時起,研發投入增加了一倍以上,我們發現此工作流程存在一些缺陷。 (例如,由於延遲集成可能會在幾天后顯示出沖突,這是相當晚的反饋)。
在不花太多精力的情況下,在花了很多精力在整個代碼庫中建立可靠的非回歸測試之后,我們現在只提交給master
,我們認為它應該可以隨時投入生產。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.