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 删除无用分支