git merge和git rebase

235 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第11天,点击查看活动详情

前言

现在公司一般多人开发都会用到git,git用着也确实很方便,拉代码,提代码,合并代码用着都很舒服,想了解git在日常工作中的基本使用可以看下这个文章,今天主要来看一下git merge和git rebase的异同。

相同点

  • 这两者的操作都是合并分支,git merge 和git rebaset都可以实现合并分支。

不同点

  • git merge 我在工作中用的比较多的就是这个,当每次分支开发完成后我就会通过如下代码来完成分支合并到master上的操作:
git checkout dev
git pull
git checkout master
git merge dev
git push origin master //将合并后的代码推到远程的master分支上

通过上述操作就完成了从dev分支合并到master主支的需求。git merge的特点是在合并的过程中会自动产生一个合并记录,如下图

image.png

初次之外,merge合并后的代码会保留原来分支上的各次提交记录,并且各提交记录会按照时间进行排序,也就是说即使你合并之后也可以看到之前的每次的提交记录。

  • git rebase rebase,变基的意思,也就是改变原来的基,那到底是什么意思呢?它的意思也就是说如果执行了git rebase,那就会改变原本的提交记录,也就是说如果通过git rebase来合并分支,那合并后的结果就会是一条记录,也就是说合并后的结果不会像git merge一样还保留原分支的提交记录。取而代之的是只有一条线形的提交记录。并且git rebase也不会自动产生多余的提交记录,这样看起来会更加的清晰。

那到底用那个比较好呢?

基于上述git merge和git rebase的特性,如果你想master分支看起来间隙明了,并且不想在master分支上展示那么多提交记录,那么就可以使用git rebase(它会把你合并过来的分支进行整合,产生一个新的commit)。

如果你想保留每次的提交记录,并且想在master上看到谁每次提交了什么,那就选择使用git merge就可以了。

总结

其实用git merge或者用git rebase其实都可以满足日常的开发需要,具体就看你喜欢或者需要那种了。