git rebase :(1)保持git history 线性commit 历史,无分叉。(2)合并多个commit 提交, git rebase -i HEAD~3,当前最近提交的三次commit 合并为一个
例如:master 当前commit 历史为 :
a: master: c1-->c2 ; 最新提交在c2 提交
在c2 处checkout 出dev 分支,并提交 c3,c4, 此时dev 分支如下
dev : c1--> c2-->c3-->c4
此时有其他开发人员在master 提交了c5
master: c1-->c2-->c5
假如用git merge 命令合并dev 到master,会导致master 提交历史分叉。如图
git rebase 就派上用场了
git checkout master; git pull;
git checkout dev;git rebase master; 有冲突合并冲突;合并冲突后 git rebase --continue;
git checkout master; git merge dev; git log --online --graph 查看线性提交历史
如果dev 最近提交的三次commit 合并为一个;就使用 git rebase -i HEAD~3