使用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分支代码部署线上环境。

原文地址:https://www.cnblogs.com/breg/p/3453423.html