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