1. 程式人生 > >git merge 幾種方式對的區別?

git merge 幾種方式對的區別?

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

fast-forward方式就是當條件允許的時候,git直接把HEAD指標指向合併分支的頭,完成合並。屬於“快進方式”,不過這種情況如果刪除分支,則會丟失分支資訊。因為在這個過程中沒有建立commit

git merge --squash 是用來把一些不必要commit進行壓縮,比如說,你的feature在開發的時候寫的commit很亂,那麼我們合併的時候不希望把這些歷史commit帶過來,於是使用--squash進行合併,此時檔案已經同合併後一樣了,但不移動HEAD,不提交。需要進行一次額外的commit來“總結”一下,然後完成最終的合併。

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