介绍
主要讲GIT分支使用策略
角色
-
主程:一个项目有一个或多个主程序员,负责管理分支合并,代码审查,并在必要的时候辅导其他程序员开展工作
-
开发人员:作为项目中的普通开发人员,一般负责功能开发,bug修复等,一般只需要操作相关特性分支即可
分支介绍
主分支
指的是 master
或 dlpt-xxx-master
分支,是项目稳定版本且可随时发布的代码,主分支一般做为保护分支,只有发布版本或者修复线上问题的时候才会去修改,只有主程序员才有权限进行直接操作。
开发分支
指的是 dev
或 devlopment
分支,是从主分支检出,用来开发当前里程碑内的功能。
测试分支
指的是 test
分支,用来在测试环境检验新的功能,或者bug修复情况。
独立部署分支
指的是 dlpt-xxxx-master
分支,用来做为独立部署服务的代码,一般都有独立的 服务配置文件
, 服务名,域名,接口域名都和主分支,测试分支不同。
特性分支
指的是一些按照特性命名,如feature-xxx
,hotfix-xxx
,或以issue编号命名的分支,如果是开发阶段,需要合并到开发分支,如果是修复线上问题,需要直接合并到测试分支,测试通过后走分支合并流程。
分支操作
分支创建
- 项目初始化,创建主分支
- 基于主分支检出开发分支或特性分支
分支合并
- 合并到主分支,通过
merge request
方式 - 合并到其他分支,在本地环境自行合并后提交到仓库
分支删除
- 一般情况下,主分支、开发分支、测试分支作为项目的重要分支,应尽量保持不做删除操作
- 其他分支,如
feature-xxx
,hotfix-xxx
,一般是由重要分支派生而来,在完成功能开发上线后或紧急bug修复上线后,可做分支删除操作
常见问题
代码冲突
当产生代码冲突时,需要在本地下载代码,根据具体的情况删除或合并冲突的代码,并再次提交到仓库。
- 注意,解决冲突时应和相关开发人员确认冲突,合并代码并非简单的解决featue a和test分支冲突,需要商量是feature a 还是feature b 需要调整代码,假若feature a 需要调整代码,feature a 调整代码,合并到test分支,feature b 重新合并到test分支。
代码回滚
使用 git reset
,git revert
等方式回滚到需要的版本。
无法提交
主要原因有:网络错误,权限错误,文件过大,提交到保护分支等。
补充
为增强团队协作能力,提高开发效率,一般我们还可以从以下点着手:
- 统一代码风格
- 提炼公共组件,模块,样式等
- 定期做code review
- 提交代码时commit信息尽量明确,方便后期追踪问题
- 适当的代码备注
- 尽量统一开发工具,甚至是统一工具内的格式化文档配置
- 公共部分的维护尽量同一人维护,并及时告知相关人员有哪些改动
网友评论