咱們制定分支規範,意在實現如下目標:git
主分支(master)用於存放最新的穩定版本。github
正式發佈時:在主分支上建立標籤(tag)。若是發佈很是頻繁能夠不加。安全
標籤的命名規範爲:release-v版本號-日期(如 release-v0.0.1-20161010)。業務項目能夠不加版本號;框架、工具項目能夠不加日期。框架
release-xx 分支:若是須要同時維護多個發佈版本(好比有些框架在發佈新版同時還會更新老版),則須要基於 master 分支建立名爲 release-v版本號前綴(如 release-v1.x)的分支,以後 master 分支持續更新爲最新穩定版,release-xx 分支則持續更新爲對應版本的最新穩定版。全部 release-xx 分支和 master 分支地位相同,master 至關因而 release-latest 分支。工具
dev 分支用於存放最新代碼(可能包含未測試的代碼),只有須要正式發佈時纔會合併到 master 分支。測試
若是項目對穩定性要求不高(好比小項目、練習用的代碼),則能夠不建 dev-xx 分支,而直接在 master 分支修改。優化
開發時:基於 master 分支建立名爲 dev-v版本號(如 dev-v0.0.1)的分支。業務項目能夠不加版本號,固定爲 dev 分支。ui
開發完成後發佈測試:直接發佈 dev 分支到測試環境。若是測試出現 bug 則在 dev 分支繼續修復。blog
測試完成後正式發佈:將 dev 分支合併到 master 分支。而後發佈 master 分支。開發
若是須要同時開發多個版本,能夠從 master 建立多個不一樣版本號的 dev-xx 分支。每次發佈後其它 dev-xx 分支須要從 master 分支合併最新的改動。
發佈後線上發現 bug 時:
有些項目須要預編譯(壓縮、優化)代碼才能發佈上線,全部分支在發佈時都會先合併到同名的 build-xx 分支。
如 dev-0.0.1 在發佈測試環境時,須要先合併到 build-dev-0.0.1 分支,而後通過預編譯後發佈 build-dev-0.0.1 分支。
如 dev-0.0.1 在發佈正式環境時,須要先合併到 master 分支,而後合併到 build-master 分支,而後通過預編譯後發佈 build-master 分支。
build-xx 分支可使用構建工具自動維護。大部分狀況開發者不須要關心此分支,除非發現因自動構建致使的 bug 時,開發者能夠切到此分支查找問題。
根據項目實際需求,能夠建立其它分支,如 github 頁面須要的 gh_pages 等分支。
分支總共有:master、dev-xx、release-xx、bugfix-xx、build-xx 五類。大部分項目只需建立前面 2 個分支,其他的根據須要再建。開發者平時只需維護 dev-xx 分支。dev-xx 的代碼只能發佈到測試環境,不能直接發佈上線。