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

clipboard.png


_ipo
179 声望15 粉丝

bug