我將代碼倉庫管理分爲如下幾個部分:html
master
(穩定分支)(保護分支)git
master+tag
(發佈版本,里程碑)hotfix
(臨時分支,補丁分支)develop
(穩定分支)(保護分支)工具
feature
(臨時分支,功能分支)release
(臨時分支,預發佈分支)master
和develop
是固定受保護、不能直接push
的分支。二者區別:post
master
始終是最後一次發佈的穩定版本develop
上會有未發佈的功能每一個分支的功能獨立,便於理解。.net
建立開發分支設計
git checkout -b develop master
功能開發日誌
git checkout -b feature-x develop
功能開發完成,分支合併到develop分支code
git checkout develop git merge --no-ff feature-x git branch -d feature-x
建立預發佈分支htm
git checkout -b release-0.1 develop
將預發佈合併到master和開發分支blog
git checkout master git merge --no-ff release-0.1 git tag -a 0.1 git checkout develop git merge --no-ff release-0.1 git branch -d release-0.1
修補bug
git checkout -b fixbug-0.1 master git checkout master //合併到主線 git merge --no-ff fixbug-0.1 git tag -a 0.1.1 git checkout develop //合併到開發分支 git merge --no-ff fixbug-0.1 git branch -d fixbug-0.1
fork
代碼,pull request
到develop
上一節提到了用tag打版本,版本號的命名規則:
項目立項
0.0.0 //主版本.次版本號.修正版本號
開發完成
1.0.0
規範化的提交對後續的整理、回溯是很友好的,好比:realse的時候進行一輪日誌獲取就能生成版本變動信息(版本開發以前應有計劃)。
規範化commit message
changelog生成
我是詳細實踐,請點我:Git commit message和工做流規範
本文主要對代碼倉庫的管理做了整理,這個也是每一個項目啓動之時就應該設計好的。
Git 工做流程
Git分支管理策略
團隊協做中的 Github flow 工做流程
Commit message 和 Change log 編寫指南
如何寫好 Git commit messages
優雅的提交你的 Git Commit Message
接口(Api)版本號命名規則