前言
现在公司,研发团队太过原始,遂作出一些努力。
如果文章对你有帮助的话,记得一键三连哟。有问题和疑惑的话也可以在评论区留言。我会第一时间回复大家,如果觉得我的文章哪里有知识点错误的话,也恳请能够告知,把错的东西理解成对的,无论在什么行业,都是致命的。
日常博客记录在语雀,欢迎关注 语雀文档。
1、基本要求
- 每个项目建立单独的
git
库,必须写README
文件,描述项目整体; - 新仓库只有
master
主分支和release
预发布分支,并且都应受保护,开发人员不允许直接在上面进行开发,只有项目管理者才能操作; master
分支只接受release
分支进行合并;- 提交分支时注明:动作类型(新增、修改、删除)+改动明细;
- 版本号命名规则:
xx.xx.xx
(大版本.功能性扩展.缺陷修复) ; - 禁止把无关文件上传到
git
库,如:密钥、视频等,仅上传代码; - 每天上班前拉取一次远程代码,下班前至少提交一次代码。
2、分支规范
主分支
master
:随时可供在生产环境中部署的代码 (生产环境)
release
:保存当前稳定并且最新的分支(预发布环境)
辅助分支
辅助分支主要用于新功能的并行开发、对生产代码的缺陷进行紧急修复工作等,合并master
后应该及时删除,使得仓库的常设分支只有master
和release
。
(1) 功能分支feature_*
用于开发新功能时所使用的feature
分支,从master
分支上面分出来的。开发完成后,合并到release
分支,上线后,打上标签后,最后删除feature_*
分支。
(2) 修补缺陷分支bug_*
用于修正生产代码中的缺陷的bug
分支,从master
分支上面分出来的。修复结束后合并release
分支(如遇release
已有版本在预发布环境,可以申请直接合并master
),上线后,打上标签后``,最后删除bug_*
分支。
(3) 辅助分支命名规则:分支类型_时间_开发模块
feature
分支:feature_20220506_moduleName
bug
分支:bug_20220506_moduleName
3、commit 日志规范
为了方便追溯,git
提交尽量遵循单次提交的代码是一个相对完整的功能或修改(可以使用rebase
合并提交记录),不要把对几个功能的修改一起提交,提交信息一定要认真填写!
参考ng
的commitizen
type
是commit
的类型:fix
:修复xxx
bugfeat
:新增xxx
功能style
:修改xxx
样式文件docs
:变更xxx
文档test
:增加测试revert
:使用revert
撤销上一次的commit
reset
:使用reset
撤销上一次的commit
4、合并规范
- 在
feature
分支上开发时,如果master
分支有变动,比如别人的功能开发完成并上线,需要将完成的功能合并到自己的分支上,即需要将feature
分支rebase
(变基)到master
分支,不要用merge
; - 合并到
release
分支上的代码必须是完整可运行的; - 合并到
master
分支的代码必须经过严格测试后才能合并,并且打上对应的tag
标签v1.0.0
,参照版本号命名规则; - 合并到
master
和release
分支,必须提交PR
(Pull Request
)操作。