流程详细说明:
常规功能开发
- 项目负责人开始一个新的功能分支(本地环境):
git checkout develop
git pull origin develop
git flow feature start xxx
-
项目负责人提交feature分支(本地环境):
git flow feature publish xxx
-
开发人员拉取feature分支(本地环境):
git flow feature pull origin xxx(git flow新版本使用git flow feature track xxx)
-
开发人员开发功能,提交功能(本地环境):
git add .
git commit -m "message"
- 开发人员提交feature分支(本地环境):
git flow feature publish xxx
- 项目负责人拉取feature分支(本地环境):
git checkout feature/xxx
git pull origin feature/xxx
- 项目负责人提交feature分支(本地环境):
git flow feature publish xxx
- 项目负责人在测试环境拉取feature分支(测试环境):
git checkout develop
git pull origin develop
git flow feature pull origin xxx
- 开发人员和项目负责人测试feature功能(测试环境):
如果需要多次修改,则重复以上的步骤,多次测试
第二次拉取代码使用原始方式:
git checkout develop
git pull origin develop
git checkout feature/xxx
git pull origin feature/xxx
- 测试完成后,项目负责人提交代码到线上(本地环境):
git checkout feature/xxx
git pull origin feature/xxx
git flow feature publish xxx
- 项目负责人提交feature到develop的merge request(gitlab后台)
测试人员合并merge request(gitlab后台)
项目负责人结束feature分支(本地环境)
git checkout develop
git pull origin develop
git checkout feature/xxx
git pull origin feature/xxx
git flow feature finish xxx
- 项目负责人关闭测试环境feature分支(测试环境)
git checkout develop
git pull origin develop
git branch -D feature/xxx
- 测试人员拉取develop分支到镜像服务器(镜像环境):
git checkout develop
git pull origin develop
- 测试人员开始一个release分支(镜像环境):
git flow release start 1.0.0
- 测试人员提交release分支(镜像环境)
git flow release publish 1.0.0
- 测试人员在镜像环境进行测试(镜像环境)
如果测试出bug,开发人员拉取代码进行修改(本地环境):
git flow release track 1.0.0
- 修改过后,开发人员提交代码(本地环境):
git flow release publish 1.0.0
- 测试人员继续拉取代码进行测试(镜像环境):
git checkout release/1.0.0
git pull origin release/1.0.0
- 测试人员最终提交代码(镜像服务器):
git checkout release/1.0.0
git push origin release/1.0.0
- 测试人员提交merge request 到master分支(gitlab后台)
- 测试人员结束release分支,push develop分支(镜像环境)
git checkout master
git pull origin master
git flow release finish 1.0.0
- 填写合并信息和tag信息
git checkout develop
git push origin develop
- 测试人员删除远程分支(镜像环境)
git push origin --delete release/1.0.0
- 测试人员提交tags(镜像环境)
git push --tags
- 测试人员线上拉取master分支和tag(正式环境)
git checkout master
git pull origin master
git pull --tags