Git 建立分支流程介紹
為什麼要有分支
建立分支的原因是 git 因為是分散式的,所以其核心就是分支,分支的意義在於,可以將專案程式碼按照功能、模組拆分成不同的分支。比如這個產品要加一個支付功能和一個登陸功能,可以建立兩個分支,交給不同的開發人員並行開發。登陸功能先開發完,測試無誤後合併改分支到 master 分支,master 分支部署上線。支付功能雖然沒有開發完成,但是在另一條分支上,所以產品上線和功能開發完全不受影響。這才是分散式開發的高效模式。還有這樣,以自己名字建立一個分支比如 xiancai,這個分支是已經做好的功能,隨時可以合併到 master 上線,開發的時候,建立一個帶功能字首的分支,比如 xiancai-ninghao 、xiancai-ninghao 等等,開發完之後在合併到 xiancai,每次上線,把 xiancai 合併到 master 。總之分支的做重要的意義就是提高效率!!! 這樣方便團隊開發,並且不會導致混亂。
分支有如下幾條:
- Master 主分支
- Develop 分支
- Feature 功能分支
- Release 預釋出分支
- Hotfix(或者Fixbug) 分支
以上各分支之間的邏輯關係見下圖;
其中對於 Feature 功能分支有;
- 從哪個分支分離開來:develop
- 必須要合併到哪個分支上:develop
- 分支的命名規範:除了 master,develop,release-,或者 hotfix- 以外的名字都可以比如可以用 feature-*的方式命名。
其中對於 Release 預釋出分支有;
- 從哪個分支分離開來: develop
- 必須要合併到哪個分支上:develop 與 master
- 分支的命名規範: release-*
其中對於 Hotfix(或者 Fixbug) 分支有;
- 從哪個分支分離開來:master
- 必須要合併到哪個分支上:develop 與 master
- 分支的命名規範:hotfix-* 或者 fixbug-*
主分支
Master 主分支
首先,程式碼庫應該有一個、且僅有一個主分支。所有提供給使用者使用的正式版本,都在這個主分支上釋出。Git 主分支的名字,預設叫做 Master。它是自動建立的,版本庫初始化以後,預設就是在主分支在進行開發。
Develop 分支
主分支只用來分佈重大版本,日常開發應該在另一條分支上完成。我們把開發用的分支,叫做 Develop。
建立分支
git branch develop #只建立分支
git checkout develop #建立並切換到 develop 分支
合併分支
git checkout master #切換到主分支
git merge --no-ff develop #把 develop 合併到 master 分支,no-ff 選項的作用是保留原分支記錄
git branch -d develop #刪除 develop 分支
這裡稍微解釋一下,上一條命令的--no-ff引數是什麼意思。預設情況下,Git執行"快進式合併"(fast-farward merge),會直接將Master分支指向Develop分支。
次分支
除了 master 與 develop 這兩個主分支,在開發時還可以建立一些次分支,目的是讓團隊不同的成員之間可以平行開發,更容易跟蹤功能,準備為生產的發行版,快速修復生產上的問題等等。這些分支生命週期有限,可以在用完以後刪掉他們。
Feature 功能分支
Feature(功能) 分支,有時候也叫 Topic 分支。在這種分支上去開發新的功能。當開發功能的時候,這個功能屬於哪個目標發行還不知道。功能如果一直在開發,對應的這個功能分支就可以一直存在,不過到最後還是要合併到 develop 分支上,或者如果不想要開發的這個功能了,可以直接扔掉它。
功能名字的命名已經在上文中有提到。
建立一個功能分支:
git checkout -b feature-x develop
開發完成後,將功能分支合併到develop分支:
git checkout develop
git merge --no-ff feature-x
刪除feature分支:
git branch -d feature-x## Release 預釋出分支
它是指釋出正式版本之前(即合併到Master分支之前),我們可能需要有一個預釋出的版本進行測試。預釋出分支是從Develop分支上面分出來的,預釋出結束以後,必須合併進Develop和Master分支。它的命名,可以採用release-*的形式。
建立一個預釋出分支:
git checkout -b release-1.2 develop
確認沒有問題後,合併到master分支:
git checkout master
git merge --no-ff release-1.2
#對合並生成的新節點,做一個標籤
git tag -a 1.2
再合併到develop分支:
git checkout develop
git merge --no-ff release-1.2
最後,刪除預釋出分支:
git branch -d release-1.2
Fixbug 修補bug分支
最後一種是修補bug分支。軟體正式釋出以後,難免會出現bug。這時就需要建立一個分支,進行bug修補。 修補bug分支是從Master分支上面分出來的。修補結束以後,再合併進Master和Develop分支。它的命名,可以採用fixbug-*的形式。
建立一個修補bug分支:
git checkout -b fixbug-0.1 master
修補結束後,合併到master分支:
git checkout master
git merge --no-ff fixbug-0.1
git tag -a 0.1.1
再合併到develop分支:
git checkout develop
git merge --no-ff fixbug-0.1
最後,刪除"修補bug分支":
git branch -d fixbug-0.1
作者:程鹹菜
連結:https://www.jianshu.com/p/7c30a4ff061c
來源:簡書