git rebase
之前每次自己本地已经有提交了,在pull新的代码下来,就会产生一个空的commit,这是来合并同一个分支不同开发者的提交。--rebase的本意是想让事情的发展看起来很连续和优美,而不是多出很多无用的merge commit 。
1、图解rebase
正常情况下的开发分支提交:

两个开发者各自在本地继续commit C进行开发,并且提交了。
如果一个人提交到了服务器,另一个人本地提交了还没push到远程,进行pull的时候,git会合并这两个基于commit C的提交commit D和commit E,虽然没有任何修改,但是也会产生一个空提交commit F。
git pull这个时候如果在pull的时候加上--rebase,效果就大不相同,简化了很多。—rebase 并不会产生一个commit提交,而是会将你的E commit附加到D commit的结尾处。在看commit log时,不会多出你所不知道的commit出来。其实此处的F commmit是无意义的,它只是一个merge commit。而且这里面的message里面的branch日后也不存了,这些分支都会被清除掉。
git pull --rebase代码都有一个前后依赖,只是这个依赖在开发的时候谁先谁后的问题。将后面的提交按顺序依次添加到commit C后面即可。
2、rebase冲突解决
rebase可能会有冲突,这个时候就要先解决冲突,使用git add <file-name>来标记冲突已解决
git add <file-name>不想合并某些提交
git rebase --skip冲突解决完之后,结束rebase
git rebase --continue如果不想rebase了,可以
git rebase --abort




