Git merge --no-ff與--squash

--no-ff指的是強行關閉fast-forward方式。git

fast-forward方式就是當條件容許的時候,git直接把HEAD指針指向合併分支的頭,完成合並。屬於「快進方式」,不過這種狀況若是刪除分支,則會丟失分支信息。由於在這個過程當中沒有建立commit指針

git merge --squash 是用來把一些沒必要要commit進行壓縮,好比說,你的feature在開發的時候寫的commit很亂,那麼咱們合併的時候不但願把這些歷史commit帶過來,因而使用--squash進行合併,此時文件已經同合併後同樣了,但不移動HEAD,不提交。須要進行一次額外的commit來「總結」一下,而後完成最終的合併。code

總結:
--no-ff:不使用fast-forward方式合併,保留分支的commit歷史
--squash:使用squash方式合併,把屢次分支commit歷史壓縮爲一次blog

相關文章
相關標籤/搜索