1. 程式人生 > >分支管理~策略,git merge 合併禁用ff模式 (十一)

分支管理~策略,git merge 合併禁用ff模式 (十一)

通常,合併分支時,如果可能,Git會用Fast forward模式,但這種 ff 模式下,刪除分支後,會丟掉分支資訊。

如果要強制禁用 Fast forward 模式,Git就會在merge時生成一個新的commit,這樣,從分支歷史上就可以看出分支資訊。

下面開始實踐:git merge 的 --no-ff 模式,即合併模式不是 fast forword (快進) 模式

1、首先,我們建立並切換 dev 分支,如下:

修改 readme.txt 檔案,在最後一行新增內容,如下:

接著,新增、提交,如下:

2、現在,我們切換回主線分支 master

,如下:

準備合併 dev 分支,請注意 --no-ff 引數,表示禁用 Fast forward 模式,如下:

因為本次合併要建立一個新的 commit,所以加上 -m 引數,把 commit 描述(merge with no-ff)寫進去。

合併後,我們用命令 git log 看看分支歷史,如下:(分支合併圖)( 命令:git log --graph --pretty=oneline --abbrev-commit )

可以看到,不使用Fast forward模式,merge後就像這樣,如下:


分支策略:

在實際開發中,我們應該按照幾個基本原則進行分支管理:

1、首先,master 分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面幹活;

那在哪幹活呢?幹活都在 dev 分支上,也就是說,dev 分支是不穩定的,到某個時候,比如1.0版本釋出時,再把 dev 分支合併到master 上,在 master 分支釋出1.0版本;

2、你和你的小夥伴們每個人都在 dev 分支上幹活,每個人都有自己的分支,時不時地往 dev 分支上合併就可以了。

所以,團隊合作的分支看起來就像這樣:

小結:

            1、Git分支十分強大,在團隊開發中應該充分應用。

           2、合併分支時,加上  --no-ff 引數就可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併,而fast forward合併就看不出來曾經做過合併。
            3、命令  git log --graph --pretty=oneline --abbrev-commit  檢視分支歷史(分支合併圖)。


轉自:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000