簡體   English   中英

Git在分支之間合並的問題

[英]Issue with Git merge from branch to branch

我們正在一個單獨的分支中開發多個功能,就像一個分支中的每個功能一樣,然后將它們合並到一個develop分支中以進行測試。 我們每周都有一個發布日,因此僅向master分支發布一些功能。 我們如何才能只選擇那些要合並到母版中的少數功能,而又不獲取尚未准備發布的其他功能的代碼?

使用Git可以有多種方法,但是一種方法是僅將您想要的功能cherry-pick到發布分支中(這似乎是您的描述中的master )。 為此,我建議您將所有功能部件/修復程序預先壓縮/合並到功能部件分支中,以便更輕松地選擇要選擇的哈希值。

在另一個問題中查看更多詳細信息: 用git挑選提交意味着什么?

此問題至少有兩個選擇:

選項1-合並功能一一對應

將要素分支直接直接合並到母版中(合並到母版時忽略開發)。 無論您采用何種處理方式,這種方法都應該起作用。 但是,您冒着開發“超前”掌握並包含未經驗證的更改的風險。 您可以通過恢復開發中失敗的更改或在開發必須達到發行價值的凍結期中有所緩解。

正如mjuarez所指出的,您可以選擇使用cherry-pick來達到類似的結果-但前提是您的功能只能限於單個提交。

選項2-合並序列化功能

如果您的功能已按順序進行驗證或接受(即按合並后的順序進行開發),則可以合並以控制來自包含所需更改的developer分支中的特定提交。

例如,如果開發包含:

  • 具有a與哈希aaa(最舊)
  • 帶有哈希bbb的特征b
  • 帶有哈希CCC的特征C(最新)=開發HEAD

...而您只想驗證/推廣功能a和b以便發布到母版,則可以將提交bbb合並到母版。

這樣做的最大好處是,您不必冒險在開發中堆積未經驗證的變更。

其他

除了這些,您可能還需要考慮其他分支方法。

https://nvie.com/posts/a-successful-git-branching-model/

https://git-scm.com/book/zh/v2/Git-Branching-Branching-Workflows

這是我們團隊中采用的方法。 請查看這是否符合您的要求。 合並功能以進行開發和質量檢查后,我們將在Develop中創建一個發布分支(Release_XXX)。 該代碼從此發行分支遷移到生產。 生產遷移完成后,我們僅將代碼從此發行分支遷移到母版,這確保您僅將經過測試的功能代碼遷移到母版。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM