大家 git 分支流程是怎么样的?

主分支 master:
开发分支:feature1212
测试分支:dev

案例:12 月 12 号有一个迭代(有多个功能)要上线,有两位开发同学参与( A,B )同时开发。
目前有两种分支管理模式:

方案一:

  • 从 master 拉 feature1212 分支
  • 开发阶段:开发 A , 开发 B 共用 feature1212 开发
  • 测试阶段:feature1212 merge 到 dev , dev 进行测试 // 当 dev 分支有变更,会通过自动部署
  • 部署线上阶段:feature1212 merge 到 master

方案二:

  • 从 master 拉 feature1212 分支
  • 开发阶段:开发 A , 开发 B 再分别从 feature1212 拉自己的分支,比如:featue1212A, feature1212B // 问题:1. 共用代码不好复用
  • 测试阶段:从自己的开发分支(featue1212A, feature1212B) merge 到 dev // 问题:1. 当 dev 分支有变更,会通过自动部署,导致多次构建 2. 这里可能有冲突,需要解决
  • 合并冲突阶段:feature1212A ,feature1212B 分别 merge 到 feature1212 // 问题:1. 这里还要再解决一次冲突
  • 部署线上阶段:feature1212 merge 到 master

上面两个方案,大家觉得哪个更好?

阅读 1.3k
1 个回答
  1. 如果 AB 的工作高度重合,那应该尽量顺序完成
  2. 如果 AB 的工作不怎么重合,那么合并 AB 应该不太容易出现冲突

所以,我的方案是:

  1. 从 master 拉 feature1212 分支
  2. 开发 AB 分别从 f1212 拉 f12a,f12b 分别开发
  3. 开发过程中,如果完成部分功能,则合并回 f1212

    1. 合并的方式应该是 rebase 之后,f1212 ff
  4. 大家同步自己本地的 f1212
  5. 未合并者 rebase 自己的分支,继续开发
  6. 同时开发,肯定要同时测试,不然都是自测。所以应该是两个人都完成后,都合并会 f1212
  7. 然后 f1212 合并到 dev 完成测试
  8. 最后合并到 master
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进