git使用规范

2020-09-21  本文已影响0人  lesline

执行流程:
执行过程如下图:


git.png

执行过程:

  1. 基于online创建feature分支(AMKT-1111);
  2. 基于feature分支拉自已的开发分支(AMKT-1111-zsl);
  3. 开发完成后,将自已的分支(AMKT-1111-zsl)合并到feature分支(AMKT-1111)
  4. 联调时,feature分支merge到develop分支;
    测试时,feature分支merge到qa分支;
    预发环境验证时,feature分支merge到preview分支;(非必须:多feature进行preview验证时使用)
    上线时,feature分支merge到online分支。

命令规范

master:暂不使用。
online:主分支,与线上保持一致。永久保留。
preivew:预发分支,多feature进行preview验证时使用,用完即删。
develop:开发分支,相对稳定分支,永久保留。develop分支online最终一致。重大上线后可删除从online重新生成。
qa : 测试分支,相对稳定分支,永久保留。develop分支online最终一致。重大上线后可删除从online重新生成。
feature:功能分支,story号。用完即删。
feature子分支:功能子分支,story号-人名全拼或者姓名首字母。用完即删。
hotfix-功能描述-人名全拼或者姓名首字母:线上bug修复分支。标注该分支处理的问题+开发人员。用完即删。
分支名称统一都是小写字母。
back-功能描述-人名:用于特殊保留分支,最后一个commit中要描述分支功能,描述过多,写在README.md中

名称示例:
AMTK-1111
AMTK-1111-zhangshaolin
hotfix-package-zsl
back-kafak-retry
back-getCustomerId-zsl(需要特别保留的)

冲突解决

如果feature分支合并到develop分支时出现冲突,不能在gitlab上merge,在gitlab上会污染feature分支。


git冲突解决.png

解决冲突过程:

  1. 基于develop分支拉合并分支(AMKT-1111-develop);
  2. 将feature分支(AMKT-1111)合并到合并分支(AMKT-1111-develop);
  3. 将合并分支(AMKT-1111-develop)合并到develop分支;
  4. 上线时,feature分支merge到online分支。

问题:
1、一个冲突解决多次,merge到develop/qa/online都要解决冲突
2、如果测试后不上线,develop分支、qa、online分支容易被污染
对于问题一:有两种情况:
一种是feature分支与online不会有冲突,只是多feature并行开发导致,这种无解;对于这种情况,开发前尽量避免这种冲突过多的多feature分支,如果是新功能feature,看是否可以同时上线,功能不对外提供服务。
另一种是feature分支与online有冲突,可能是某一feature已上线,这种可以把online分支merge到feature分支。
对于问题二:重大上线后,删除develop、qa分支,从online重新拉取

注意:

  1. 解决冲突不能在gitlab上
  2. 不要用reset
  3. git commit msg 尽量 短小有意义
  4. 合并代码@maobing
  5. 代码先提develop分支,再提qa(只在develop分支deploy到私服)
上一篇 下一篇

猜你喜欢

热点阅读