git rebse的變基提交

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 -icode

有時候,咱們會存在,想修改提交的順序,或者刪除某個提交之類的操做時,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就能解決你的煩惱了。

weixin

更多技術相關的和話題請關注公衆微信號【APPZone】
私下交流請關注的新浪微博@跡_Jason

相關文章
相關標籤/搜索