Git rebase 和 git merge
1.git merge
将某一分支的变化合并到当前分支。把两个分支最新的快照(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
删除无用分支
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。