變基

變基

我一直在一個新分支上開發一項新功能,同時也在我的主分支上進行了相當多的更改。

是否可以將主分支合併到我的新分支中以保持最新狀態,以便在新功能完成後不會出現太多合併衝突?

答案1

你可以git merge master或者git rebase master

如果分支還沒有分發給其他人,在這種情況下我更願意git 變基

因為git rebase使得功能分支上的變更好像是在主分支上的變更之上進行的,這使得版本圖更簡單。

變基

舉個例子git 變基手冊git rebase master在分支feature

      A---B---C feature                             A'--B'--C' feature
     /                   --rebase-->               /
D---E---F---G master                  D---E---F---G master

然而,git rebase只有當沒有其他人在處理它時才適用,否則他們會感到混亂和額外的工作,因為舊的提交 A、B、C 現在被新的提交 A'、B'、C' 和 F 取代和G以前不存在。

git rebase master分支後的實際結果feature是這樣的:

      ( A---B---C ) feature@{1}
       /
      /       A'--B'--C' feature
     /       /
D---E---F---G master

提交 A、B、C 在變基後懸空,但可以通過git reflog featureas到達feature@{1}

合併

如果有人拉出了你的分支,或者你把它推到了某個地方,你應該合併到它中,以避免另一端的混亂和額外的工作。看從上游變基恢復

git merge master這是in 分支的結果feature

      A---B---C feature                    A---B---C---M feature
     /                   --merge-->       /       ,---’
D---E---F---G master                 D---E---F---G master

或者,如果您git merge feature在分支中master,它看起來像這樣:

      A---B---C feature                    A---B---C feature
     /                   --merge-->       /         \
D---E---F---G master                 D---E---F---G---M master

相關內容