• 技术文章 >开发工具 >git

    git的merge与rebase的区别

    (*-*)浩(*-*)浩2019-10-24 17:30:38原创7771

    接Git分支创建与合并,在分支合并时,有两种方式:git merge 和git rebase。

    git merge:将两个分支,合并提交为一个新提交,并且新提交有2个parent。

    git rebase:会取消分支中的每个提交,并把他们临时存放,然后把当前分支更新到最新的origin分支,最后再把所有提交应用到分支上。

    git merge

    具体操作:bob在index1.html中修改2次,并提交到远程仓库;lilei在index.html中修改2次,并提交到远程仓库;bob拉取远程仓库(git fetch origin dev),merge合并。分支结构如下:

    git-1.png

    由此可见,两个分支进行了合并,并且93a6d33提交有2个parent(135b375和8b61b04)。

    git rebase

    具体操作:lilei在index.html中修改2次,并提交到远程仓库;bob在index1.html中修改2次,并提交,拉取远程仓库(git fetch origin dev),rebase合并。命令行输出如下:

    git-2.png

    首先将HEAD指针移到当前origin分支顶部,然后再应用所有提交到当前分支。分支结构(呈直线型)如下:

    git-3.png

    可以看出,rebase时,当前分支在135b375共有祖先的基础上,将191b8cd、00e08ec及后续2次提交,共计4个提交撤销。然后将HEAD移到322ca9提交上,再将4个提交重新应用到分支上。

    以上就是git的merge与rebase的区别的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:git
    上一篇:大牛总结出来的Git使用技巧,太实用了 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • github不用jq用什么• GitHub是什么意思• Git常用命令总结• github怎么下载
    1/1

    PHP中文网