mzy git學習,禁用Fast forward的普通合併(六)
阿新 • • 發佈:2018-11-07
git merge --no-ff -m "msg" x-branch:禁用Fast forward的普通合併
通常,合併分支時,如果可能,Git會用Fast forward模式,但這種模式下,刪除分支後,會丟掉分支資訊(即:原來這個分支的做了什麼在log中體現不出來)。
為了保留原來的分支,即:普通合併,這樣的話,merge的時候會提交一個commit,就會輸入-m引數,在log中體現的也更清晰!
前面我們解決衝突的時候發現,我們解決衝突之後,即使
是在master主分支上合併dev,最後檢視日誌的時候:
git log --graph --pretty=oneline --abbrev-commit
發現其實合併前後只有一條線,master和mzy指向的是同一個結點。這樣完全看不出合併的痕跡。
但使用--no-ff的話,禁用Fast forward,使用普通合併,就能在合併的位置看到一個commit 突出的合併節點!
假如我們當前在master分支上:
git merge --no-ff -m "把dev分支上的內容合併到master上,使用普通合併" dev $ git log --graph --pretty=oneline --abbrev-commit * 8fc444b (HEAD -> master) merge with no-ff |\ | * 1601be9 (dev) add merge |/ * 4aa96bc 修改了readme.txt * 68f4f31 修改LICENSE * 6653ea8 Merge branch 'yao' into mzy
這樣的話,就很利於團隊開發了!
大家都在自己的分支上幹活,時不時的往dev上合併,最後定期合併到master上就好了!這樣也能看出我們的分支的資訊,以及什麼時候合併過,更直觀!預設的fast forward我們是看不出痕跡的!
團隊中開發怎麼用呢?
首先有master分支:
在master分支上建立一個master的分支,dev(開發分支):
git checkout master 切換到master上
git checkout -b dev (建立並切換到了dev分支上了)
git branch mzy_a (在dev上為dev建立mzy_a分支)
git branch mzy_b (在dev上為dev建立mzy_b分支)
git branch mzy_c (在dev上為dev建立mzy_c分支)
... ...git merge --no-ff -m "" 分支名稱。