web项目使用git多人协作

1.只有一个master分支

  项目比较小,不频繁更新时,可以只用 master 一个分支

  流程:

    (1)提交代码到本地 master 分支,并推送到远程 master 分支

    (2)持续集成构建或本地构建,然后上传到服务器

  

  上传到服务器:

    (1)持续集成构建,然后同步到服务器

    (2)本地构建,然后上传到服务器

2.开发分支与主分支,人少

  master:主分支,对应线上代码

  dev:开发分支,对应开发代码

  流程:

    (1)提交代码到本地 dev 分支

    (2)在需要构建项目时 merge 到本地 master 分支,并推送到远程 master 分支

    (3)持续集成构建,然后同步到服务器


3.个人开发分支与主分支,人多

  master:主分支,对应线上代码

  person1:个人person1开发分支,对应开发代码

  person2:个人person2开发分支,对应开发代码

  流程:

    (1)提交代码到本地 person1分支

    (2)在需要构建项目时 merge 到本地 master 分支,并推送到远程 master 分支(有可能需要先 pull 远程的代码)

    (3)持续集成构建,然后同步到服务器

  注意:

    每一个个人分支都需要隔一段时间 pull 一下 master 分支,以保证自己本地的代码的版本不会低于服务器。

4.多个服务器环境,人少

  如果项目比较大,并且对应多个服务器环境

  master:主分支

  prod:产品分支,对应产品服务器环境

  test:测试分支,对应测试服务器环境

  dev:开发分支

  流程:

    (1)提交代码到本地 dev 分支

    (2)在需要构建项目时 merge 到本地 test 分支,并推送到远程 test 分支

    (3)持续集成构建,然后同步到测试服务器

 

  构建产品环境:

    (1)由远程的 test 分支 merge 到远程 prod 分支进行持续集成构建

    (2)由本地 dev 或 test 分支 merge 到本地 prod 分支,并推送到远程 prod 分支进行持续集成构建(图上没画)

4.多个服务器环境,人多

  master:主分支

  prod:产品分支,对应产品服务器环境

  test:测试分支,对应测试服务器环境

  person1:个人person1开发分支,对应开发代码

  person2:个人person2开发分支,对应开发代码

  流程:

    (1)提交代码到本地 person1分支

    (2)在需要构建项目时 merge 到本地 test 分支,并推送到远程 test 分支(有可能需要先 pull 远程的代码)

    (3)持续集成构建,然后同步到测试服务器

  构建产品环境:

    (1)由远程的 test 分支 merge 到远程 prod 分支进行持续集成构建:

    (2)由本地 个人分支(person1) 或 test 分支 merge 到本地 prod 分支,并推送到远程 prod 分支进行持续集成构建。

  注意:

    每一个个人分支都需要 pull 一下 prod 分支,如有需要也可以 pull test 分支,以保证自己本地的代码的版本不会低于服务器。

5.多个需求同时开发

  有多个需求同时开发,并且相互独立,为了不影响每个需求的测试与上线,需要为每个需求创建一个分支

  master:主分支

  prod:产品分支,对应产品服务器环境

  test:测试分支,对应测试服务器环境

  person1:个人person1开发分支,对应开发代码

  person2:个人person2开发分支,对应开发代码

  task1:需求 task1 开发分支

  task2:需求 task2 开发分支

  流程:

    (1)本地 task1 分支 merge 到本地 prod 分支,并推送到远程 prod 分支进行持续集成构建

    (2)每一个个人分支(如 person1)都需要 pull 一下 prod 分支,以保证自己本地的代码的版本不会低于服务器

    (3)最后删除 task1 分支

 

  注意:

    构建产品环境时,为了保证各个需求不相互影响,一般由本地直接合并到 prod分支

6.多人协作修改公共文件   

  不同分支修改同一个文件而导致的文件冲突,避免的方法:

    (1)在代码层面,尽量避免多个成员都会改动的文件,尽量将代码分解到每个人只负责自己的那块代码,不需要去改别人的代码

    (2)在工程层面,尽量减少公共文件,尽量每个文件只由一个人负责

    (3)在 git 层面,如果有必要,可以单独建一个分支,用于更新某些公共文件,并及时的更新到其他分支

7.根据现实情况调整简化流程

  多页面 web 前端应用,把某一个页面更新到服务器并不影响其他页面

  NodeJs、PHP、Python 等后端应用,只上传自己更新的文件

  使用本地构建的方式更新代码到服务器

 

posted @ 2019-02-21 09:13  慕尘  阅读(535)  评论(0编辑  收藏  举报