2016-09-10 263 views
0

我有一個特定的分支和合並方案,如下所述::Git分支和合並

可以說我在git倉庫中有一個「Master」分支。還有一個功能分支說 「Feature1」取自主人約200人將工作。現在我想讓另一個分支說「Team_Feature」,其中約20人將工作。同時我必須保持「Team_Feature」分支與「Feature1 Branch」同步。在「Feature1」分支完成之後,它將被合併爲主,新分支「Feature 2」將被採用。在此期間,我的團隊將繼續在「Team_Feature」上工作,這將與「Feature 2分支」合併。現在

,我重訂特徵1支進Team_Feature,我將每週一次做。面對

問題:: 我第二次重訂,我得到了很多合併衝突,屬於以下

  1. 許多衝突提到的不同病例類型(添加/加)
  2. 許多人(重命名的/刪除)
  3. 許多人編輯衝突,與從未在Team_Feature分行變更的文件中的衝突。
  4. 而一些衝突的是合法的。

所以,問題是,

  1. 這是什麼添加/添加,重命名/刪除,重命名/重命名衝突?
  2. 是什麼原因導致這些衝突觸發?
  3. 如何避免呢?
  4. 最重要的無疑是在上面所列內容號碼3。

請幫助,感謝提前:)

回答

0

目標:

  1. 請特徵1同步,可在主機在未來合併其掌握
  2. 保持團隊功能與Feature1同步並在未來合併到 功能2

解決方案:

  1. 保持每天的基礎上合併主到特徵1
  2. 保持合併特徵1到團隊特徵
  3. (上述點#1)之後一旦特徵2來在現有的基礎上,不斷將Feature2合併到Team Feature中。

所以,問題是,

這是什麼添加/添加,重命名/刪除,重命名/重命名衝突?

什麼原因導致這些衝突?

- >有很多鏈接可以理解這一點(重命名/刪除,重命名/重命名),基本上它是在樹枝級別更改爲合併中的兩個分支中的文件,並且這兩個更改都不相同。除了添加/添加 - >這是文件內容級別衝突,就像在同一行文件中添加同一行號的不同內容一樣

如何避免它們?

  • 避免這種複雜的支化的替代的工作可以是 使用切換,而不是特徵支化。

  • 如果在特性分支模型時,寫郵件來完成 團隊關於你正在使用的區域,並要求他們不要做樹 水平的變化如刪除該區域,重命名等,這是更容易 解決內容衝突,但痛苦解決樹水平衝突。

  • 最後,要避免在分支機構工作的大團隊發生衝突並不容易。

我強烈建議在這種情況下使用切換來避免複雜的合併衝突。 - 切換是一個功能的運行時間條件(標誌),可以根據切換標誌以兩種可能的方式運行該功能。所有功能僅在一個分支中切換。

例子: -

比方說,我們正在實施一個新的詳細信息頁面,

我們將首先建立一個切換,其值存儲在一些文件中說new_details_page =真

現在代碼我們有這樣一些 的事情,如果(new_details_page ==真){ 渲染 'NEWPAGE' }其他{ 渲染 'oldPage' }

如果新細節頁面的工作尚未完成,並且您想用舊細節頁面發佈產品,那麼只需將該標誌構建爲false並將其部署到發佈環境即可。

最後,在這種情況下避免合併衝突的最佳解決方案是使用切換,您可以在互聯網上閱讀關於切換與功能分支的更多信息。