git rebase 用來改變一串提交,以什麼爲基礎的問題git
其實際的意義就是爲了保持正在開發的分支中的提交,相對於另外一個分支代碼,是最新的shell
如今有兩個分支,topic分支是基於master中的B提交點獨立出來的,若是我如今想要讓topic的分支基點變爲E,就能夠使用vim
git checkout topic git rebase master 或者 git rebase master topic
若是要把feature分支,移到master的E節點時微信
git rebse --onto master maint^ feature
若是過程當中存在衝突問題,rebase會臨時掛起,等你解決完衝突後,使用
git rebase --continue
進行接下的操做,若是以爲衝突沒有修改必要,能夠git rebase --skip
,若是過程當中後悔了,則git rebse --abort
終止操做spa
接下來講說git rebase -i
code
有時候,咱們會存在,想修改提交的順序,或者刪除某個提交之類的操做時,rebase -i
就派上用了blog
//master~3就是一個範圍 git rebase -i master~3
執行上面的語句會獲得,下面相似的內容圖片
pick aced9f3 遠程2 pick 532a39d 遠程3 pick 852da65 rebse
能夠在vim中,更改這三行的數據的前後順序,來實現提交的前後順序,好比ip
pick 852da65 rebse pick aced9f3 遠程2 pick 532a39d 遠程3
使用:wq
保存退出開發
若是想要實現某兩個提交節點,合二爲一
pick 852da65 rebse squash aced9f3 遠程2 pick 532a39d 遠程3
第二個提交節點會合併到第一個提交中去
這個其實能夠運用到開發的場景中,咱們時常存在提交代碼的時候,與遠程代碼庫存在衝突,在merge以後會生成一個merge的提交點,若是你是強迫症患者,確定是不容許的,這個時候你使用rebase就能解決你的煩惱了。
更多技術相關的和話題請關注公衆微信號【APPZone】
私下交流請關注的新浪微博@跡_Jason