git分支流程-----自己看
git分支基本流程
(1)从master分支创建develop分支,用于单一需求开发
(2)从develop分支创建feature分支,用于单一功能开发,可以创建多个feature分支(多个功能)。功能开发完成之后,merge到product分支。
(3)从develop分支创建release分支,用于sit,uat测试,并且在此分支修复bug,直到测试完成。
(4)从master分支拉取product分支,用于单一功能的投产。release分支测试完成之后。merge到product分支中。
(5)从master分支中创建hotfix分支,用于master基线版本单一功能的紧急修复。修复并测试完成后,merge至master分支,develop分支通过pull请求及时同步master分支的超前更新。
单需求
场景:一个需求x,包涵两个功能x_f1、x_f2。
初始化:
① 从master创建develop_x分支,用于x需求开发。
② 从develop_x创建feature_x_f1和feature_x_f2功能分支。
开发:
③ 开发feature_x_f1功能分支。自测完成后,merge至develop_x。
④ 开发feature_x_f2功能分支开发前,在feature_x_f2本地使用pull功能从develop_x分支拉取最新代码,用于同步feature_x_f1的开发内容,若无冲突,则从feature_x_f2本地分支push至feature_x_f2远程分支。
⑤ 开发feature_x_f2功能分支。自测完成后,merge至develop_x。
测试:
⑥ 从develop_x创建release_x分支,用于sit和uat测试。所有bug修复均在release_x分支迭代。直至测试完成,准备投产。
投产:
⑦ 从master创建product_x-20200821投产分支。
⑧ release_x分支merge至product_x-20200821投产分支。
⑨ product_x-20200821分支投产成功后,product_x-20200821分支merger至master分支。
⑩ master分支打tag标签“v20200821”。
⑪ 流程完成。
多需求
场景:
一个系统下,产生两个需求,并且开发周期x短,先投产。y长,后投产。
需求x,包涵两个功能x_f1、x_f2。(同单需求场景相同)
需求y,包涵两个功能y_f1、y_f2。(请注意红字部分)
X需求
初始化:
① 从master创建develop_x分支,用于x需求开发。
② 从develop_x创建feature_x_f1和feature_x_f2功能分支。
开发:
③ 开发feature_x_f1功能分支。自测完成后,merge至develop_x。
④ 开发feature_x_f2功能分支开发前,在feature_x_f2本地使用pull功能从develop分支拉取最新代码,用于同步feature_x_f1的开发内容,若无冲突,则从feature_x_f2本地分支push至feature_x_f2远程分支。
⑤ 开发feature_x_f2功能分支。自测完成后,merge至develop_x。
测试:
⑥ 从develop_x创建release_x分支,用于sit和uat测试。所有bug修复均在release_x分支迭代。直至测试完成,准备投产。
投产:
⑦ 从master创建product_x-20200821投产分支。
⑧ release_x分支merge至product_x-20200821投产分支。
⑨ product_x-20200821分支投产成功后,product_x-20200821分支merger至master分支。
⑩ master分支打tag标签“v20200821”。
⑪ 流程完成。
y需求
*初始化:*
① 从master创建develop_y分支,用于y需求开发。
② 从develop_y创建feature_y_f1和feature_y_f2功能分支。
开发:
③ 开发feature_y_f1功能分支。自测完成后,merge至develop_y。
④ 开发feature_y_f2功能分支开发前,在feature_y_f2本地使用pull功能从develop分支拉取最新代码,用于同步feature_y_f1的开发内容,若无冲突,则从feature_y_f2本地分支push至feature_y_f2远程分支。
⑤ 开发feature_y_f2功能分支。自测完成后,merge至develop_y。
⑥ 此时,x需求投产完成,投产分支已merge至master。develop_y本地分支须使用pull功能拉取master超前更新。feature_y_f1和feature_y_f2本地分支须使用pull功能拉取develop分支的超前更新。同时推送到远程分支。
测试:
⑦ 从develop_y创建release_y分支,用于sit和uat测试。所有bug修复均在release_y分支迭代。直至测试完成,准备投产。
投产:
⑧ 从master创建product_y-20200821投产分支。
⑨ release_y分支merge至product_y-20200821投产分支。
⑩ product_y-20200821分支投产成功后,product_y-20200821分支merger至master分支。
⑪ master分支打tag标签“v20200821”。
⑫ 流程完成。
投产打包
(1)uat测试完成之后,建立product分支,然后创建投产增量包
(2)选择最新product分支版本号
(3)选择最新master分支的版本号
(4)进入本地项目,切换product分支,使用git bash命令
git diff xxxxx1 xxxxx2 --name-only | xargs tar -zcvf xxx.tar.gz
xxxxx1和xxxxx2为product和master的版本号,可以不分前后顺序。
投产完成之后,product分支与master分支合并。然后打上标签(V投产日期)
投产日:20201023
投产内容:
1......;
2......;
3.......,......;
投产人:xxx