通常,合併分支時,如果可能,git會用fast forward
模式,但這種模式下,刪除分支後,會丟掉分支資訊。
如果要強制禁用fast forward
模式,git就會在merge
時生成乙個新的commit
,這樣,從分支歷史上就可以看出分支資訊。
下面我們實戰一下--no-ff
方式的git merge
:
首先,仍然建立並切換dev
分支:
$ git checkout -b dev
switched to a new branch 'dev'
修改readme.txt檔案,並提交乙個新的commit:
$ git add readme.txt
$ git commit -m "add merge"
[dev f52c633] add merge
1 file changed, 1 insertion(+)
現在,我們切換回master
:
$ git checkout master
switched to branch 'master'
準備合併dev
分支,請注意--no-ff
引數,表示禁用fast forward
:
$ git merge --no-ff -m "merge with no-ff" dev
merge made by the 'recursive' strategy.
readme.txt | 1 +
1 file changed, 1 insertion(+)
因為本次合併要建立乙個新的commit
,所以加上-m
引數,把commit
描述寫進去。
合併後,我們用git log
看看分支歷史:
$ git log --graph --pretty=oneline --abbrev-commit
* e1e9c68 (head -> master) merge with no-ff
|\
| * f52c633 (dev) add merge
|/
* cf810e4 conflict fixed
...
分支策略
在實際開發中,我們應該按照幾個基本原則進行分支管理:
首先,master
分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面幹活;
那在哪幹活呢?幹活都在dev
分支上,也就是說,dev
分支是不穩定的,到某個時候,比如1.0版本發布時,再把dev
分支合併到master
上,在master
分支發布1.0版本;
你和你的小夥伴們每個人都在dev
分支上幹活,每個人都有自己的分支,時不時地往dev
分支上合併就可以了。
所以,團隊合作的分支看起來就像這樣:
小結git分支十分強大,在團隊開發中應該充分應用。
合併分支時,加上--no-ff
引數就可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併,而fast forward
合併就看不出來曾經做過合併。
18 分支管理策略
通常,合併分支時,如果可能,git會用 fast forward 模式,但這種模式下,刪除分支後,會丟掉分支資訊。如果要強制禁用 fast forward 模式,git就會在merge時生成乙個新的commit,這樣,從分支歷史上就可以看出分支資訊。下面我們實戰一下 no ff方式的merge 首先...
廖雪峰 Git 分支管理 3 分支管理策略
通常,合併分支時,如果可能,git 會用fast forward模式,但這種模式下,刪除分支後,會丟掉分支資訊。如果要強制禁用fast forward模式,git 就會在 merge 時生成乙個新的 commit,這樣,從分支歷史上就可以看出分支資訊。下面我們實戰一下 no ff方式的git mer...
廖雪峰 Git 分支管理 3 分支管理策略
通常,合併分支時,如果可能,git 會用fast forward模式,但這種模式下,刪除分支後,會丟掉分支資訊。如果要強制禁用fast forward模式,git 就會在 merge 時生成乙個新的 commit,這樣,從分支歷史上就可以看出分支資訊。下面我們實戰一下 no ff方式的git mer...