1.rebase(变基)操作
注意事项:rebase 改变分支的根源,绝对不要在与其他人共享的分支上进行操作rebase黄金法则:绝不要在公共的分支上使用它!
1.1git merge 与 git rebase的区别
1.1.1git merge 合并两个分支并生成一个新的提交
1.1.2git rebase提取操作有点像git cherry-pick一样,执行rebase后依次将当前(执行rebase时所在分支)的提交cherry-pick到目标分支(待rebase的分支)上,然后将在原始分支(执行rebase时所在分支)上的已提交的commit删除。
###1.1.3 merge结果能够体现出时间线,但是rebase会打乱时间线
在项目中经常使用git pull来拉取代码,git pull相当于是git fetch + git merge;
在项目中运行git pull -r,也就是git pull --rebase,相当于git fetch + git rebase;
1.2当前分支master
1.3基于当前的master分支创建一个rebase_dev
1.4基于rebase_dev分支增加两次提交
1.5切回master分支,增加两次新的提交
1.6切回rebase_dev,查看当前git log
1.7在rebase_dev分支上进行变基操作
$git rebase master
可以看到rebase的操作,打乱了时间线;版本树形成一条
1.8回顾一下merge的操作
1.8.1初始化一个仓库,基于master,增加两次提交
1.8.2基于master分支,创建merge_dev分支,增加两次提交
1.8.3基于merge_dev,切换至master分支
1.8.4基于master分支增加一次提交,而后切换至merge_dev
1.8.5将master分支合并至merge_dev并完成提交