git 分支管理策略

2021-09-05 12:48:41 字數 3193 閱讀 7609

通常,合併分支時,如果可能,git會用fast forward模式,但是有些快速合併不能成而且合併時沒有衝突,這個時候會合併之後並做一次新的提交。

比如這樣的場景

在這種情況下,雖然主分支和dev分支都有修改操作,但是並不是修改同乙個檔案,因此可以正常完成合併;但是此時執行合併的時候,無法執行快速合併,而是git會自動將dev分支中的內容合併到master分支,然後執行提交。

(1)建立切換到dev分支下。

[root@test-zookeeper-go-016003 git_test]# git checkout -b dev

switched to a new branch 'dev'

[root@test-zookeeper-go-016003 git_test]# git branch

* dev

master

[root@test-zookeeper-go-016003 git_test]# echo "new file" >> code2.txt

[root@test-zookeeper-go-016003 git_test]# git add code2.txt

[root@test-zookeeper-go-016003 git_test]# git commit -m "add a new file"

[dev 3b235ed] add a new file

1 file changed, 1 insertion(+)

create mode 100644 code2.txt

(3)切換回master分支,編輯code.txt並進行乙個提交。

[root@test-zookeeper-go-016003 git_test]# git checkout master

switched to branch 'master'

[root@test-zookeeper-go-016003 git_test]# echo "*******">>code.txt

[root@test-zookeeper-go-016003 git_test]# git add code.txt

[root@test-zookeeper-go-016003 git_test]# git commit -m "add a new line ***"

[master dd6ffc2] add a new line ***

1 file changed, 1 insertion(+)

(4)合併dev分支的內容到master分支。

# git merge dev
(5)出現如下提時,這是因為這次不能進行快速合併,所以git提示輸入合併說明資訊,輸入之後合併內容之後git會自動建立一次新的提交。

將第一行內容替換為新版本的版本名,如下:

儲存後會,自動提交。

(6)使用分支命令檢視分支資訊

(7)刪除dev分支。

# git branch -d dev

deleted branch dev (was 3b235ed).

關於禁用快速合併如果要強制禁用fast forward模式,git就會在merge時生成乙個新的commit,這樣的好處是:從分支歷史上就可以看出分支資訊。

(1)建立並切換到dev分支。

[root@test-zookeeper-go-016003 git_test]# git checkout -b dev

switched to a new branch 'dev'

(2)修改code.txt內容,並提交乙個commit。

[root@test-zookeeper-go-016003 git_test]# echo "66666666">>code.txt 

[root@test-zookeeper-go-016003 git_test]# git add code.txt

[root@test-zookeeper-go-016003 git_test]# git commit -m 'add 666'

[dev 5236145] add 666

1 file changed, 1 insertion(+)

(3)切換回master分支。

[root@test-zookeeper-go-016003 git_test]# git checkout master

switched to branch 'master'

(4)準備合併dev分支,請注意–no-ff引數,表示禁用fast forward:

[root@test-zookeeper-go-016003 git_test]# git merge --no-ff -m "不使用快速合併" dev

merge made by the 'recursive' strategy.

code.txt | 1 +

1 file changed, 1 insertion(+)

因為本次合併要建立乙個新的commit,所以加上-m引數,把commit描述寫進去。

(5)合併後,我們用git log看看分支歷史:

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

思考:在什麼情況下,應該禁用快速合併呢

在下篇博文bug分支中,就有講述

------做運維之前很矯情的小年輕-----

Git分支管理策略

如果你嚴肅對待程式設計,就必定會使用 版本管理系統 version control system 眼下最流行的 版本管理系統 非git莫屬。相比同類軟體,git有很多優點。其中很顯著的一點,就是版本的分支 branch 和合併 merge 十分方便。有些傳統的版本管理軟體,分支操作實際上會生成乙份現...

Git分支管理策略

git分支管理策略 作者 阮一峰 如果你嚴肅對待程式設計,就必定會使用 版本管理系統 version control system 眼下最流行的 版本管理系統 非git莫屬。相比同類軟體,git有很多優點。其中很顯著的一點,就是版本的分支 branch 和合併 merge 十分方便。有些傳統的版本管...

Git分支管理策略

如果你嚴肅對待程式設計,就必定會使用 版本管理系統 version control system 眼下最流行的 版本管理系統 非git莫屬。相比同類軟體,git有很多優點。其中很顯著的一點,就是版本的分支 branch 和合併 merge 十分方便。有些傳統的版本管理軟體,分支操作實際上會生成乙份現...