程序员必会技能系列(2)git中merge和rebase比较-3
2017-03-31 10:25
281 查看
git中有两个合并分支的方法,一个是git merge,另一个是git rebase。
用merge合并分支时不会改变历史(通俗的说就是commit号不会变)。在git中merge会创造一个特殊的commit,这个commit包含两个父commit。示例,执行git命令,[1]:git checkout master ,[2]:git merge bugFix。结果如下图所示:
现在bugFix是master的祖先,我们现在把bugFix也放到C4上去。
执行命令[1]:git checkout bugFix;[2]:git merge master。得到的结果如下图:
这个过程git并没有做什么工作,只是把bugFix移动到commit C4中。现在我们的两个分支bugFix和master都包含了仓库中的所有工作。
2、通过commit号讲解git merge
git rebase 可以创建一个更接近线性的提交历史。但是git rebase会改变提交历史。
栗子:[1]、git checkout bugFix ;[2]、git rebase master
现在master是bugFix的祖先,现在我们把master也放到C3’上
[1]、git checkout master [2]、git rebase bugFix
2、通过commit号讲解rebase
一、git merge 讲解
1、画图讲解git merge用merge合并分支时不会改变历史(通俗的说就是commit号不会变)。在git中merge会创造一个特殊的commit,这个commit包含两个父commit。示例,执行git命令,[1]:git checkout master ,[2]:git merge bugFix。结果如下图所示:
现在bugFix是master的祖先,我们现在把bugFix也放到C4上去。
执行命令[1]:git checkout bugFix;[2]:git merge master。得到的结果如下图:
这个过程git并没有做什么工作,只是把bugFix移动到commit C4中。现在我们的两个分支bugFix和master都包含了仓库中的所有工作。
2、通过commit号讲解git merge
二、git rebase 讲解
1、画图讲解git rebasegit rebase 可以创建一个更接近线性的提交历史。但是git rebase会改变提交历史。
栗子:[1]、git checkout bugFix ;[2]、git rebase master
现在master是bugFix的祖先,现在我们把master也放到C3’上
[1]、git checkout master [2]、git rebase bugFix
2、通过commit号讲解rebase
相关文章推荐
- 程序员必会技能系列(2)git的使用-1
- git两种合并方法 比较merge和rebase
- 程序员必会技能系列(2)git的使用-2
- Git的Merge和Rebase的功能比较
- git merge 和 git rebase 区别
- 关于git rebase和git merge
- Git rebase、pull、push 出现 conflict 后不能merge的解决方法
- git 分支 merge和rebase
- git fetch 后, git merge 和 git rebase的区别
- Git学习系列(六)——Git 少用 Pull 多用 Fetch 和 Merge
- EEclipse上GIT插件EGIT使用手册之十_Rebase和Merge如何选择的简单解析
- Rebase v Merge in Git
- git rebase 与git merge
- git merge 和 git rebase 小结 .
- Use gitk to understand git – merge and rebase
- git merge 与 rebase 的区别
- Eclipse上GIT插件EGIT使用手册之十_Rebase和Merge如何选择的简单解析
- Eclipse上GIT插件EGIT使用手册之九_Rebase和Merge的区别
- git rebase与merge的区别
- merge与update效率比较系列1