git中的merge跟rebase

git中的merge和rebase

使用git时,如果遇到分支的情况,比如两个开发人员都从commit2开始各自开发,然后分贝在本地完成了两个commit:


git中的merge跟rebase
 

此时,如果要将两个分支的代码合并起来,通常会有两种方式,一种对两个分支的代码进行merge,通常会执行的命令为:

 

   1: git pull

 



 这时的版本库历史看起来会是这样:


git中的merge跟rebase
 

不过通常我们想要的是,保持一个较为简单的历史轨迹,分支太多的话会显得比较凌乱,当引入bug或者其他问题时,可能会影响到追踪。另一种做法是先将某一 个分支A上的提交保存下来,然后将分支B上的,对于commit2的修改作用到commit2上,然后将保存起来的修改作用到新的结果上:


git中的merge跟rebase
 

对应的命令为:

 

   1: git pull --rebase

 

这个过程并非必要,但是是一种良好的实践,当本地有commit,而需要和别人的commit合并时,建议使用rebase来保证修改历史的轨迹的简洁。