我将代码仓库管理分为如下几个部分: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)版本号命名规则