1. 程式人生 > >Git 分支命名規範(完)

Git 分支命名規範(完)

Git 分支命名規範

分支:		命名:		說明:

主分支		master		主分支,所有提供給使用者使用的正式版本,都在這個主分支上釋出
開發分支		dev 		開發分支,永遠是功能最新最全的分支
功能分支		feature-*	新功能分支,某個功能點正在開發階段
釋出版本		release-*	釋出定期要上線的功能
修復分支		bug-*		修復線上程式碼的 bug

主分支 Master

首先,程式碼庫應該有一個、且僅有一個主分支。所有提供給使用者使用的正式版本,都在這個主分支上釋出。

Git主分支的名字,預設叫做 Master 。它是自動建立的,版本庫初始化以後,預設就是在主分支在進行開發。

開發分支 Dev

主分支只用來分佈重大版本,日常開發應該在另一條分支上完成。我們把開發用的分支,叫做 Dev
這個分支可以用來生成程式碼的最新隔夜版本(nightly)。如果想正式對外發布,就在 Master 分支上,對 Dev 分支進行”合併”(merge)。

Git建立 Dev 分支的命令:

git checkout -b dev master

將 Dev 分支釋出到 Master 分支的命令:
切換到 Master 分支
git checkout master

對 Dev 分支進行合併
git merge –no–ff dev

這裡稍微解釋一下,上一條命令的–no–ff引數是什麼意思。預設情況下,Git執行”快進式合併”(fast-farward merge),會直接將 Master 分支指向 Dev 分支。
使用–no–ff引數後,會執行正常合併,在 Master 分支上生成一個新節點。為了保證版本演進的清晰,我們希望採用這種做法。

功能分支 Feature

功能分支的名字,可以採用feature- * 的形式命名。

建立一個功能分支:

git checkout -b feature-x dev

開發完成後,將功能分支合併到dev 分支:
git checkout dev
git merge –no-ff feature-x

刪除feature分支:
git branch -d feature-x

預釋出分支 Release

第二種是預釋出分支,它是指釋出正式版本之前(即合併到 Master 分支之前),我們可能需要有一個預釋出的版本進行測試。
預釋出分支是從 Dev 分支上面分出來的,預釋出結束以後,必須合併進 Dev 和 Master 分支。它的命名,可以採用release- * 的形式。

建立一個預釋出分支:

git checkout -b release-1.2 dev

確認沒有問題後,合併到master分支:
git checkout master
git merge –no-ff release-1.2

對合並生成的新節點,做一個標籤:
git tag -a 1.2

再合併到dev 分支:
git checkout dev
git merge –no-ff release-1.2

最後,刪除預釋出分支:
git branch -d release-1.2

修補分支 Bug

最後一種是修補bug分支。軟體正式釋出以後,難免會出現bug。這時就需要建立一個分支,進行bug修補。
修補bug分支是從 Master 分支上面分出來的。修補結束以後,再合併進 Master 和 Dev 分支。它的命名,可以採用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

再合併到dev 分支:
git checkout dev
git merge –no-ff fixbug-0.1

最後,刪除”修補bug分支”:
git branch -d fixbug-0.1

git tag usage

# 新增
git tag -a V0.1.110811 -m"基本部署完成,有BUG待做"

#刪除
git tag -d V0.1.110811

#推送到遠端
git push origin V0.1.110811

git push –tags