這是我參與8月更文挑戰的第1天,活動詳情查看:8月更文挑戰html
關於 git rebase
你們老是衆說紛紜。git
路人A: 「咱們團隊歷來不用git rebase
,同樣沒事阿,公司也好好地,還在賺大錢呢?」markdown
路人B:「git rebase
大法好!git rebase
就是神!」svn
既然存在這麼多爭議,那麼咱們就用最少的時間來一塊兒瞭解一下git rebase
究竟能給我帶來什麼。oop
場景1:小明開發一個極爲複雜的功能e
,防止代碼不可抗力致使代碼丟失,優秀的小明用優秀的習慣,天天進行了代碼的提交,記錄分別爲e-1
,e-2
,e-3
;post
圖一flex
終於優秀的小明開發完了,可是他有代碼潔癖,每次開發完,都會去抽離本身的方法,看看代碼有沒有更精簡的地方,他連提交記錄都要作到極致優美。url
圖二spa
git log
, 找到這三次提交,固然也可使用更加精準的git reflog
,二者具體的區別就不在這篇文章進行贅述。git rebase -i HEAD~3
,命令中的3表明最後的三次提交;i
進入編輯模式,將最後兩個pick
變動爲s
,按下esc
,手動輸入:wq
,合併的第一步就成功了,接下來要爲此次的合併修改一下提交記錄。i
進入編輯模式,將不須要的刪除或者前面添加#
表示註釋這一行,編輯結束以後,按下esc
,手動輸入:wq
,合併就成功了 這裏咱們就要對比git rebase
和 git merge
:3d
話很少說啦,直接上結果:
先看咱們最喜聞樂見、耳熟能詳的git merge
:
再看git rebase
呈現的效果:
然而實際的操做是十分的簡單: 在two
分支下執行:git rebase one
當前分支的全部提交都會前置到最前面,就能夠成爲一條優美的提交記錄。
不再用忍受這愛與恨錯綜複雜的「情感交織」了
出現遊離分支的話請參考:www.cnblogs.com/yxhblogs/p/…