git 分支的衍合

Git rebase 和 git mergegit

1.git mergespa

將某一分支的變化合併到當前分支。把兩個分支最新的快照(C3 和 C4)以及兩者最新的共同祖先(C2)進行三方合併,合併的結果是產生一個新的提交對象(C5),master指向C5

2.git rebase指針

回到兩個分支最近的共同祖先,根據當前分支(也就是要進行衍合的分支 experiment)後續的歷次提交對象(這裏只有一個 C3),生成一系列文件補丁,而後以基底分支(也就是主幹分支 master)最後一個提交對象(C4)爲新的出發點,逐個應用以前準備好的補丁文件,最後會生成一個新的合併提交對象(C3'),從而改寫 experiment 的提交歷史,使它成爲 master 分支的直接下游,master指向爲移動,須要merge


1)git rebase --onto master server client
將client分支衍合到master,跳過server
2)git checkout master
   git merge client
切到master分支,合併client到master,右移動master分支指針
3)git rebase master server
將server衍合到master分支上
4)git checkout master
   git merge server
切刀master分支,合併server到master上
5)git branch -d client
  git branch -d server
刪除無用分支

clipboard.png

相關文章
相關標籤/搜索