簡體   English   中英

git merge或rebase,功能分支到另一個正在運行的功能分支

[英]git merge or rebase, feature branch to another running feature branch

我有以下分支

  • 發布
  • 開發
    • 功能1
    • 功能2
  • 長時間特征

所有功能分支都屬於dev分支,完成后合並為dev分支。 我按照以下方式做

git checkout feature-1
git rebase dev
(remove all conflict, if exist and then commit)
git checkout dev
git rebase feature-1
git push origin dev

上面的過程很好,對歷史記錄進行了適當的管理,一切都很好。 但是我有另一個長期存在的分支機構。 它會在一個月后發布,我需要通過dev分支對其進行更新(在完成每個新功能之后)。 因此,同樣的事情也適用於具有長期功能的分支而無需重新開發。

git checkout **long-time-feature**
git rebase dev
(remove all conflict, if exist and then commit and push it)

但是現在,下一次我將其重新設定為開發基礎時,所有沖突將再次重復,並且推送時會增加很多提交。 很難每次都一次又一次地消除沖突。 :(因此,任何好方法可以與dev一起更新我的長期功能分支。

提前致謝

沒有奇跡,長期存在的分支注定會引起合並沖突。 但是,您可以嘗試通過以下一種方法來最大程度地減少其損壞:

合並而不是變基

這樣,您每次合並即可解決沖突,並保留長期存在分支的原始歷史記錄

缺點:歷史不再是線性的。 如果決定撤銷開發功能,則更難還原該功能

南瓜長壽科歷史

您有可能在重新建立基礎上解決長期分支的后續提交時遇到的相同沖突。 您可以通過將歷史記錄壓縮成較大的提交(最好是一次提交)來改善此情況。

缺點是歷史較少。

暫無
暫無

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

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