git merge和git rebase都可以用来合并分支,merge是将commit合并后生成一个新的commit
git rebase的操作也是合并,比如我想将A分支合并到master分支上,用merge操作是这样:
先切换到master分支:执行git merge A
用rebase是这样:
先切换到A分支:执行git rebase master,此操作是改变A分支commit基点连接在master的末端。然后再切换到master分支 执行git merge A。然后git log后看到的commit记录都是在一条线上的,不会分叉。
有大神说在执行rebase的时候不要在master分支上执行,因为会造成commit的丢失,但是我在A分支上执行rebase后还是要到master上执行一个merge操作,这样岂不是相对于merge又多了一步?只是为了查看log记录好看一点么?
可能问题表述的不是很好,请大神指点一下rebase的操作!!!
我的理解是这样的:
commit
的时候 在 A 中用rebase
把 master 新commit
合过来, 并且保证在 A 新增的commit 会排在 log 的最后 , 这个操作在 A 的开发阶段可以使用多次.mergin
合并 A, 不会自动产生合并分支的 'commit'