git merge 幾種方式對的區別

2021-08-28 07:12:04 字數 561 閱讀 5309

--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歷史壓縮為一次

git merge 與 git rebase的區別

merge與rebase的區別 假設我們有如下圖一所示倉庫,該倉庫有master和develop兩個分支,且develop是在 3.added merge.txt file commit處從master拉出來的分支。假設現在head在 6.added hello.txt file 處,也就是在mas...

git merge 與 git rebase的區別

其實這個問題困擾我有一段時間,相信也有人和我一樣有這個困擾,網上已有很多這種解釋了,但是要麼就是無圖,要麼就是解釋的很亂,沒太看懂,經過自己對git的使用,加上向同事請教,算是理解了這個問題,所以寫下來分享一下,我盡量詳細說明 merge與rebase的區別 假設我們有如下圖一所示倉庫,該倉庫有ma...

git merge 與 git rebase的區別

前言 其實這個問題困擾我有一段時間,相信也有人和我一樣有這個困擾,網上已有很多這種解釋了,但是要麼就是無圖,要麼就是解釋的很亂,沒太看懂,經過自己對git的使用,加上向同事請教,算是理解了這個問題,所以寫下來分享一下,我盡量詳細說明 merge與rebase的區別 假設我們有如下圖一所示倉庫,該倉庫...