Git 最顯著的優勢之一:版本的分支(branch)和合並(merge)node
- 代碼庫應該有一個、且僅有一個主分支
- 全部提供給用戶使用的正式版本,都在這個主分支上發佈
- Git主分支的名字,默認叫作Master,是自動創建的,版本庫初始化之後,默認就是在主分支在進行開發
- 主分支:用來分佈重大版本
- 開發(Develop):在另外一條分支上完成
- 這個分支能夠用來生成代碼的最新隔夜版本(nightly)
- 若是想正式對外發布,就在Master分支上,對Develop分支進行"合併"(merge)
# 建立 Develop 分支
$ git checkout -b develop master
將 Develop 分支發佈到 Master 分支
# 切換到Master分支
$ git checkout master
# 對Develop分支進行合併
$ git merge --no-ff develop
1* 主(Master)分支
2* 開發(Develop)分支
3* 功能(feature)分支
4* 預發佈(release)分支
5* 修補bug(fixbug)分支
命名形式:feature-*git
1# 建立一個功能分支 2$ git checkout -b feature-x develop 3 4# 將功能分支合併到develop分支 5$ git checkout develop 6 7$ git merge --no-ff feature-x 8 9# 刪除feature分支 10$ git branch -d feature-x
- 第二種是預發佈分支,在發佈正式版本以前(即合併到Master分支以前),對預發佈的版本進行測試
- 預發佈分支是從Develop分支上面分出來的,預發佈結束之後,必須合併進Develop和Master分支
1# 建立一個預發佈分支 2$ git checkout -b release-1.2 develop 3 4# 合併到 master 分支 5$ git checkout master 6$ git merge --no-ff release-1.2 7 8# 對合並生成的新節點,作一個標籤 9$ git tag -a 1.2 10 11# 再合併到develop分支 12$ git checkout develop 13$ git merge --no-ff release-1.2 14 15# 刪除預發佈分支 16$ git branch -d release-1.2
- 最後一種是修補bug分支
- 軟件正式發佈之後,不免會出現bug。要建立一個分支,進行bug修補
- 修補bug分支是從Master分支上面分出來的
- 修補結束之後,再合併進Master和Develop分支
- 它的命名,能夠採用fixbug-*的形式
1# 建立一個修補bug分支 2$ git checkout -b fixbug-0.1 master 3 4# 修補結束後,合併到master分支 5$ git checkout master 6$ git merge --no-ff fixbug-0.1 7$ git tag -a 0.1.1 8 9# 再合併到develop分支 10$ git checkout develop 11$ git merge --no-ff fixbug-0.1 12 13# 最後,刪除"修補bug分支" 14$ git branch -d fixbug-0.1