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 等后端应用,只上传自己更新的文件
使用本地构建的方式更新代码到服务器