1、git merge
合并前:
A---B---C top
/
D---E---F---G---H master
把top分支合并到master分支上
1、切换到master分支
git checkout master
2、合并top分支
git merge top
合并后:
A-----B----C top
/ \
D---E---F---G---H---I master
2、git rebase
变基前:
A---B---C top
/
D---E---F---G---H master
1、切换到top分支
git checkout top
2、变基
git rebase master
变基后:
A'---B'---C' top
/
D---E---F---G---H master
注:变基操作,top分支的A,B,C 提交的哈希值变化了,所以如果这些提交已经push到远程服务器了,那就不能用变基的操作,避免再次push异常。
git pull 默认是用git merge的方式来合并,如果在远程服务器上已有提交,本地也有提交,用git pull操作,会将远程提交合并到本地来,就会出现log分叉,太多的合并分叉,看起来不太直观。
建议用 git pull --rebase 操作,将远程服务器的提交先合到本地,再将本地的提交接在最后,这样就不会出现分叉了。