git merge -ff --no-ff --squash 區別 fast-forward


git merge #沒有參數

即默認啟用fast-forward方式進行合並,不會顯示 feature,只保留單條分支記錄。git直接把HEAD指針指向合並分支的頭,完成合並。屬於“快進方式”,不過這種情況如果刪除分支,則會丟失分支信息。因為在這個過程中沒有創建commit。

git merge --squash

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

git merge --no-ff

強行關閉fast-forward方式。可以保存你之前的分支歷史。能夠更好的查看 merge歷史,以及branch 狀態。

圖示說明1

圖示說明2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM