Git 合并时 --no-ff 的作用
生活随笔
收集整理的這篇文章主要介紹了
Git 合并时 --no-ff 的作用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、場景:
我最近在進行代碼合并的時候,使用的是 :
? ? ? ? ? git merge --no-ff 分支名稱二、分析
-
git merge
????????默認使用的時“快進”(fast-forward)模式合并,所以 git merge <=> git merge -ff
-
fast-forward
????????Git 合并兩個分支時,如果順著一個分支走下去可以到達另一個分支的話,那么 Git 在合并兩者時,只會簡單地把指針右移,叫做“快進”(fast-forward)
-
git merge --no-ff
指的是強行關閉fast-forward方式。
三、具體使用效果
sit分支
從sit分支創建一個新的分支dev
dev提交記錄之后,把dev分支合并到 sit分支;
查看兩個合并的區別
-
使用git merge 代碼合并
? ? ? ?最終分支圖:
? ? ? git merge默認使用的時“快進”(fast-forward)模式,?
? ? ?所以 dev 合并到 sit 分支時,Git 在合并兩者時,只會簡單地把指針右移,如下圖:
-
git merge --no-ff 代碼合并
? ?????????最終分支圖:
????????????????由于?--no-ff?禁止使用快進模式,所以會生成一個新的提交;
????????????????所以? dev 合并 到 sit 分支時, 可以看下圖 創建了一個新的提交節點, sit 指向新的提交節點
?區別:
?其實上面兩種提交的結果 圖 對比,其實很明顯, --no-ff??關閉快進模式 進行合并的時候, 會創建一個新的提交, 且指向新的提交, 這樣就會造成兩個合并操作 回退版本的區別,請看下面的圖片:
四、結果:
請查看兩次 合并的區別,非常明顯:?
關閉快進模式
合并操作: 生成了新的提交Merge branch 'dev' into sit
?回退上個版本: 上次合并提交的都回退了
默認的 開啟快進模式
合并操作: 并沒有創建新的提交
?回退上個版本:? 發現并沒有回到退sit之前的提交,而是回退到了dev的上次提交
總結
以上是生活随笔為你收集整理的Git 合并时 --no-ff 的作用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【新年好】为什么要 spring-ses
- 下一篇: zz 教你如何用proxyhunter找