1.git pull
git pull = git fetch + git merge FETCH_HEAD
git pull --rebase = git fetch + git rebase FETCH_HEAD
2.merge 和 rebase
現(xiàn)在我們有這樣的兩個(gè)分支,test和master,提交如下:
D---E test
/
A---B---C---F--- master
在master執(zhí)行g(shù)it merge test,然后會得到如下結(jié)果:
D--------E
/ \
A---B---C---F----G--- test, master
在master執(zhí)行g(shù)it rebase test,然后得到如下結(jié)果:
A---B---D---E---C‘---F‘--- test, master
merge操作會生成一個(gè)新的節(jié)點(diǎn),之前的提交分開顯示。
而rebase操作不會生成新的節(jié)點(diǎn),是將兩個(gè)分支融合成一個(gè)線性的提交。
3.rebase好處
想要更好的提交樹,使用rebase操作會更好一點(diǎn)。
這樣可以線性的看到每一次提交,并且沒有增加提交節(jié)點(diǎn)。
merge 操作遇到?jīng)_突的時(shí)候,當(dāng)前merge不能繼續(xù)進(jìn)行下去。手動(dòng)修改沖突內(nèi)容后,add 修改,commit 就可以了。
而rebase 操作的話,會中斷rebase,同時(shí)會提示去解決沖突。
解決沖突后,將修改add后執(zhí)行g(shù)it rebase –continue繼續(xù)操作,或者git rebase –skip忽略沖突。