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