作用
git rebase用于把一个分支的修改合并到当前分支
git rebase和git merge的区别是什么
本地两个分支: 一个分支 dev01 ,一个主分支 master
现在开发分支 dev01要合并来自 master 上的最新修改,可以有两种选择 merge 或 rebase,
两者的最后得到的结果是一样的,区别是 rebase 后两个分支合并为一个分支,dev01合并前所有的 commit (patch)都 消失了,log历史看起来像没有经过合并一样。
而merge 还是两个分支,只不过在merge后这个点交汇。
使用merge
首先我的本地代码库不是最新的,先从远端master仓库pull一下。用"pull"命令把"origin"分支上的修改拉下来并且和开发分支合并;
git checkout master
git pull
git checkout dev01
git merge master
结果就像一个新的"合并的提交"(merge commit)
使用rebase
如果想让"dev01"分支历史看起来像没有经过合并一样,则用rebase
git checkout master
git pull
git checkout dev01
git rebase master
rebase命令会把dev01分支里的每个提交(commit)取消掉,并且把它们临时保存为补丁(patch)(这些补丁放到".git/rebase"目录中),然后把dev01分支更新为最新的origin分支,最后把保存的这些补丁应用到dev01分支上