1.分支命名
1.主分支为master
2.预生产为release
3.测试环境为test
4.开发分支feature/+版本+功能模块+发版时间,例如feature/v1-order-0923
5.修复bug分支,使用hotfix/+版本+功能模块+发版时间
2.分支合并
1.开发新的功能模块或修复bug应从master上检索
2.开发或修复分支合并到test分支进行测试
3.禁止直接将test分支合并到relase或master分支,因为test分支可能部分功能还不可以上线
4.禁止两个分支相互合并,两个版本都有发生更改的情况,相互合并会导致一些代码冲突或者部分代码会被替换等代码不一致的情况
5.合并到maser或release分支应该经过代码评审或者代码检查后,发起合并请求,由主管理员处理,开发者协助处理冲突文件
6.代码的提交应该保证功能能够运行且不影响其他业务功能的情况下方可提交,避免含有bug的代码提交上去
7.代码上正式环境后,稳定运行后,代码应该及时合并到master分支,避免用户从master分支拉取的代码不是最新的
8.尽量避免多个分支同时开发时,一定要确认先合并到主分支的代码是否和未合并到主分支的有相同文件被修改到,在提交前应仔细对比原分支的代码,再合并
注意:由于多个开发分支多次在本分支提交,git无法正确的识别改动的变化,在自动合并冲突文件时,有可能将自动处理后的文件变成非自己期待的版本,部分代码可能被其自动合并过程中丢失点.
3.处理冲突文件
1.开发新的功能模块或修复bug应从master上检索
2.开发或修复分支合并到test分支进行测试
3.禁止直接将test分支合并到relase或master分支,因为test分支可能部分功能还不可以上线
4.禁止两个分支相互合并,两个版本都有发生更改的情况,相互合并会导致一些代码冲突或者部分代码会被替换等代码不一致的情况
5.分支合并到relase或master分支时,如果有多个分支同时开发,应该从master拉取一个合并分支处理,将代码合并处理好冲突后,再由合并分支合并到relase或master分支,禁止将将有冲突的文件直接合并到master分支
4.注意文件命名避免在不同操作系统不兼容问题
1.例如文件名中带有冒号的,在windows下无法完成项目的checkout,而在Linux和mac中没有这个问题