Git(武佩奇版)--实战5

73 阅读3分钟

多人协同开发

多人协同开发的gitflow工作流

  • 流程说明
    • 首先是master分支,上面存放的都是稳定的线上代码
    • 当我们想开发新的功能的时候,我们从master中切出一个分支dev,用于研发新的功能
    • 多个员工一起合作进行开发,假设我们分配给A员工的是支付功能,分配给B员工的是聊天功能,这时,两个员工都从dev分支切出自己的分支,用于自己代码的开发,A的分支假设是da分支,B的分支是db分支
    • A,B员工同时并行在各自的分支上开发,互相并不干扰,A自己进行开发,开发了da1版本,开发了da2版本,开发了da3版本,支付功能全部完成,这时他向dev分支请求合并自己完成的代码,代码管理者会对A的开发的代码进行code review,合格了,就会将A开发的代码合并到dev分支中,生成dev分支的d2版本
    • dev分支的d2代码版本并不稳定,需要进行测试,不能直接推送到master上进行合并,所以需要一个预发布的分支,可以在上面进行测试,测试中有bug的话,可以进行修复,测试到没有任何的问题了,申请和master进行合并,形成m3版本,然后将测试版本合并到dev分支,形成d3版本,保证现在的dev分支和master的代码的一致,release的分支完成使命可以删除
    • B自己进行开发,开发了db1版本,开发了db2版本,开发了db3版本,开发了db4版本,聊天功能全部完成,这时他向dev分支请求合并自己完成的代码,代码管理者会对B的开发的代码进行code review,合格了,就会将B开发的代码合并到dev分支中,生成dev分支的d4版本
    • 和上面A完成功能之后进行release版本的处理方式一样,在release分支测试通过合并到master分支,别忘了合并到dev分支中
    • bug分支这个加到图里面实际上模拟的是我们在开发过程中,线上出现在我们测试的过程中没有出现的问题的话,需要紧急的进行修复,开一条bug分支,修复完成合并到master分支就行了
      • 这里只是一个示意图,在下面的图中m2到m3的会存在冲突,解决就行了,其实是master改变了,需要对dev也进行调整,下面的开发人员的代码也要拉最新的dev,避免不必要的冲突
  • 流程示意图
    • image.png
  • 邀请团队成员
    • 无组织邀请
      • 适合于单人的项目开发
      • image.png
      • image.png
      • image.png
      • image.png
      • image.png
      • image.png
      • image.png
    • 有组织邀请
      • 适合于公司的团队项目开发
      • 在组织中创建项目
      • image.png
      • image.png
      • image.png
      • image.png
      • image.png
      • image.png
    • 邀请成员
      • image.png
      • image.png
      • image.png
      • image.png
      • image.png
      • image.png
      • image.png

打标签

git tag -a V1 -m "标签的描述"
git push origin --tags
  • image.png
  • image.png
  • image.png
  • image.png

联合开发

  • 成员权限设置
    • image.png
    • image.png
    • image.png
    • image.png
  • pull request完成代码review
    • image.png
    • image.png
    • image.png
    • image.png
    • image.png
    • image.png
    • image.png
    • image.png
    • image.png
    • image.png
    • image.png
    • image.png
    • image.png
    • image.png
  • 协同测试
    • 切分支并推送远端用于测试
      • image.png
    • 测试完成后,修改bug,提交了master的pull request(过程和上面一样),本地操作如下
      • image.png
    • 注意:合并或者pull request的过程中可能会有冲突,有冲突就解决冲突就行了