git中merge和rebase的区别

Posted 泡^泡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git中merge和rebase的区别相关的知识,希望对你有一定的参考价值。

1.采用merge和rebase后,git log的区别,merge命令不会保留merge的分支的commit:
2.处理冲突的方式:
·(一股脑)使用merge命令合并分支,解决完冲突,执行git add .和git commit -m’fix conflict’。这个时候会产生一个commit。
·(交互式)使用rebase命令合并分支,解决完冲突,执行git add .和git rebase --continue,不会产生额外的commit。这样的好处是,‘干净’,分支上不会有无意义的解决分支的commit;坏处,如果合并的分支中存在多个commit,需要重复处理多次冲突。
3.git pull和git pull --rebase区别:git pull做了两个操作分别是‘获取’和合并。所以加了rebase就是以rebase的方式进行合并分支,默认为merge。

举个例子:
假设我们现在有3个分支
master分支:线上环境使用的分支
testing分支:测试环境使用的分支
my_feature分支:开发新功能的分支,也就是当前分支

A. 假设我在my_feature上开发了一段时间,之后另外的同事开发的功能正式上线到master分支了,那么我可以在当前的分支下rebase一下master分支,这样我这个分支的几个commits相对于master还是处于最顶端的,也就是说rebase主要用来跟上游同步,同时把自己的修改顶到最上面
B. 我在my_feature上开发了一段时间了,想要放到testing分支上,那就切到testing,然后merge my_feature进来,因为是个测试分支,commits的顺序无所谓,也就没必要用rebase (当然你也可以用rebase)

以上是关于git中merge和rebase的区别的主要内容,如果未能解决你的问题,请参考以下文章

git中merge和rebase的区别

git merge 与 git rebase的区别

git merge 与 git rebase的区别

git中merge和rebase的区别

git merge和rebase的区别

git merge rebase的区别及应用场景