git 分支合併實踐

概念:

git rebase

git rebase 是叫變基=>更換基線=>更換commit的基線=>把其他分支上的commit應用到當前分支上。

git merge

Merge 是進行3方合併,並且把合併的結果保存成一個commit。兩個分支合併默認會使用fast-forward合併策略,

二者的區別:

Merge是兩個分支進行合併,二者是平等的。rebase 是把一個分支的commits 複製到另外一個分支上,不會產生Merge remote-tracking branch 'origin/main'這樣的commit。

合併過程

  1. 先fetch,remote-tracking分支就有最新的commit了
git fetch --all
# git remote update -p  # 同步遠程分支
  1. 再嘗試進行merge,但是merge 可能會產生衝突,解決的方法是如果產生衝突就不要使用merge了,而是用rebase
git merge @{u} --ff-only
# @{u} 表示當前分支跟蹤的遠程分支,比如當前分支是main ,這個就相當於 origin/main
# --ff-only ,表示只使用fast-forward 策略合併,如果合併不了則報錯
  1. 使用rebase 解決衝突併合並
git rebase -r @{u} 
# 將遠程分支的commit 打補丁到當前分支, -r 表示保留遠程commit 的信息。

git的衝突格式

<<<<<<HEAD(當前分支)
第一個分支修改的內容
======
第二個分支修改的內容
>>>>>> 其他分支

參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章