使用git进行代码管理
站台服务器代码管理
【管理工具】
GIT
【环境及对应分支】
环境名称 | 环境地址 | 对应代码分支 | 备注 |
---|---|---|---|
线上环境 | /u01/web/xxxx/production | master | |
测试环境 | /u01/web/xxxx/sandbox | release-* | 例:release-0.9.2 |
联调环境 | /u01/web/xxxx/dev | api-* | 例:api-0.9.2.1 |
本地开发环境 | 本地配置 | api-*, backend-* |
【各分支简介】
分支名称 | 分支地址 | 是否动态 | 分支作用 |
---|---|---|---|
master | 否 | 线上代码,只接受release及hotfix分支的merge | |
develop | 否 | 开发分支主干,主要用于创建及合并各feature分支 | |
release-* | 是 | 提测分支,阶段性开发完成后,由develop分支创建release分支用于测试 | |
hotfix-* | 是 | 用于bugfix,快速检出master代码,修复后在测试并上线 | |
api-* (feature) | 是 | feture分支,用于接口功能的开发 | |
backend-* (feature) | 是 | feture分支,用于后台功能的开发 |
【分支关系图】
(引用自 http://nvie.com/posts/a-successful-git-branching-model/)
【分支开发及上线流程】
1,开发新feature:由develop分支创建feature分支,在feature分支进行开发,完成后merge回develop分支。流程如下:
(1)创建新功能开发分支:
- git checkout -b myfeature develop;
(2)若为api feature开发,用api-*分支部署dev环境,进行与客户端的联调;
(3)在myfeature分支开发、联调迭代n个版本后,达到提测标准;
(4)合并到develop分支:
- git checkout develop;
- git merge –no-ff merge myfeature;同时解一些可能出现的conflict;
- git push;
(5)删除myfeature分支:
- git branch -d myfeature;
2,提测:由开发完成的develop分支创建release-*分支,进行测试及迭代,完成后merge到master和develop分支。流程如下:
(1)创建测试分支:
- git checkout -b release-* develop;
(2)指定版本号;
(3)n轮测试及迭代后达到上线标准;
(4)合并到master分支,打tag:
- git checkout master;
- git merge –no-ff merge release-*;
- git tag -a *;
- git push;
(5)合并回develop分支:
- get checkout develop;
- git merge –no-ff merge release-*;
- git push;
(6)删除release分支:
- git branch -d release-*;
3,bugfix:从线上分支master检出代码,修复后测试,完成后merge回master分支。流程如下:
(1)创建hotfix分支:
- git checkout -b hotfix-* master;
(2)修复bug,并测试;
(3)通过测试后,合并回master和develop分支:
- git checkout master;
- git merge hotfix-*;
- git push;
- git checkout develop;
- git merge hotfix-*;
- git push;
(4)删除hotfix分支:
- git branch -d hotfix;
4,部署环境及上线:登录服务器,执行部署脚本,用相应分支的代码(或其编译出的binary)部署不同的环境。上线即用master分支代码部署线上环境。