簡體   English   中英

合並分支並修復沖突

[英]Merge branches and Fix conflicts

我有兩個分支,我想將它們合並到一起,但問題是其中一個分支在幾個月前停止接收另一個分支的任何更新。 因此,當我嘗試合並它們時,會遇到大量復雜的沖突。

有什么解決方案可以安全地合並它們嗎?

注意:我正在使用 Android Studio

沒有辦法解決這個......沖突發生是因為代碼朝着不同的方向發展,所以他們必須處理。 您可以一次解決一大堆沖突的一種方法是將較長的分支(因為它們發散)重新定位到較短分支的每個提交上。 說....你有這兩個分支

A <- B <- C <- D <- E <- (branch1)
     ^
      \- F <- G <- (branch2)

你可以運行git switch branch2; git rebase C git switch branch2; git rebase C 您可能會遇到較小的沖突,並以這樣的方式結束:

A <- B <- C <- D <- E <- (branch1)
          ^
           \- F' <- G' <- (branch2)

然后git rebase D ,最后是這樣的:

A <- B <- C <- D <- E <- (branch1)
               ^
                \- F'' <- G'' <- (branch2)

最后git rebase branch1並以這個結束:

A <- B <- C <- D <- E <- (branch1)
                    ^
                     \- F''' <- G''' <- (branch2)

但這並不意味着您將避免沖突.....您實際上可能會在此過程中遇到更多沖突,但理論上它們應該更小(實際上可能並非如此,但唉,事先無法知道)。

另一種可行的方法是合並但不是提示,而是中途或分段......然后沖突應該更小......最后,當你最終合並真正的提示時擁有最終所需的樹你真正想要的分支,你可以運行一個git commit-tree命令來創建一個“憑空”提交,它使用真正的 2 個分支作為父分支和你創建的所有合並的最終樹,這樣你就可以避免所有這些合並你在中間嘗試過的(如果你想避免它們出現)。

暫無
暫無

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

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