主页 git rebase和merge的区别
文章
取消

git rebase和merge的区别

你好,我是猿java。

最近和几个小伙伴在基于github私有仓库进行开发,在把远程master合并到本地分支时,很习惯了使用了git merge,结果小伙伴们说他们的是使用git rebase的,因此特定去比较了两者的区别:

比如: A,B都从 master分支的的同一个commit点:bb99d 拉出两个新分支 A: 分支名 xxx_a B: 分支名 xxx_b

然后A,B在各自的代码开发,如果A先commit,并且把代码push到了master,commit点是 b9223e6,

此时B需要提交代码,需要先把master上最新代码拉下来,有两个操作:

git rebase

1
git rebase origin master

该指令会把A提交的点b9223e6作为B的新起点,整体呈一条直线,如下图:

img.png

git merge

1
git merge origin master

该指令执行后,B分支的提交点还是刚从master拉取分支时的bb99d,A,B各有一条提交线,如下图

img.png

最后

如果想要一个干净的,没有merge commit的线性历史树,那么你应该选择git rebase,如果想保留完整的历史记录,并且想要避免重写commit history的风险,你应该选择使用git merge

建议 企业级使用 建议git merge,可以看出各个提交分支的历史; 个人学习什么的可以git rebase,分支少,清爽

本文为原创文章,转载请标明出处。

本文链接:https://www.yuanjava.cn/java/2022/04/22/gitrebase.html

本文出自猿java的博客

鸣谢

如果你觉得本文章对你有帮助,感谢转发给更多的好友,关注我:猿java,为你呈现更多的硬核文章。

drawing

Jdk8 按照属性的某字段合并list

如何在idea中将git多个commit合并成一个