簡體   English   中英

Git:主要版本更改的分段合並方法?

[英]Git: piecewise merge approach for major version changes?

我們正在對網站進行重大修訂。 修改后的站點上的所有工作都是在git分支(稱為2.0)中完成的,該分支是從master分支出來的。 在此過程中,已經掌握了一些較小和重要的更改,我們希望將這些更改合並到2.0中。

但是,將其作為一個大型合並來進行似乎很笨拙-盡管某些更改可以很好地合並,但其中一些更改涉及的代碼不再存在於2.0中,並且本質上將要求重新實現2.0的新功能。 只要合並后仍然存在許多未解決的沖突,修復這些功能可能就很困難。 我們已經考慮過使用cherry-pick從master那里帶來那些可以很好地合並的更改,同時手動重新實現主要更改,但是如果我們想將2.0中的所有更改合並回給我,那將會造成麻煩。主。

理想情況下,我可以從master到2.0進行分段合並-將一組次要提交合並到一個特定提交,然后合並一個主要提交並手動重新實現特定的新功能,然后手動重新實現另一個系列,最后,母版完全合並到2.0中。 這是解決這種情況的好方法嗎? 如果是這樣,我該如何部分合並到master中,而不是一直合並到最新的master提交中? 還是我應該采取其他更好的方法?

您當然可以通過引用提交哈希而不是分支名稱來合並到分支零碎中。 因此,假設您要合並到master行上的特定提交(例如,它是abcd1234 ),則只需進入2.0分支並運行:

git merge abcd1234

使用這種方法,然后您可以根據需要一次進行任意多次提交。 如果發生沖突,您可以解決該沖突而不必立即進行處理。

如果您在master分支上進行的更改僅與您分支上不存在的代碼相關,因此完全過時,則可以運行:

git merge --strategy=ours bcde2345

這將為master上的更改創建一個合並提交,但不會更改樹的內容(與它們在2.0 ,因此這些提交將被標記為已合並,而實際上並未執行任何操作。

暫無
暫無

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

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