Git Commit Message 规范实践
Posted 小羊子说
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git Commit Message 规范实践相关的知识,希望对你有一定的参考价值。
文章目录
背景
本文总结了项目实践中的 Commit Message 规范。
任何一笔提交都是有原因的,因此 commit message 需要说明该笔提交的 目的. 我们主要借鉴AngularJS Git Commit Message Conventions。
规范commit message想要达到的目的主要有:
- 提供更多更准确的信息。便于review,更容易发现潜在问题。便于查看历史记录回溯
- 发布版本的时候可以通过脚本生成changelog
- 可以对commit message信息进行过滤筛选
commit message 格式说明,都是必填。
(<issue_id>):
其中 Allowed
- feat (feature)
- fix (bug fix)
- docs (documentation)
- style (formatting, missing semi colons, …)
- refactor
- test (when adding missing tests)
- chore (maintain)
- ui (UI 微调,不影响功能逻辑)
<issue_id>: JIRA issue id。比如android_INFRA-74
: 目前要求是有内容就行。最好不要超过50个字。
: 空行。用来分隔subject和body, 分隔body 和 test affect。
示例
feat(ANDROID_INFRA-90): seperate registration from identity verification
原来的两个接口实现不动,但是标为 Deprecated
- /mobile/consignor/register/quick: doRegister()
- /mobile/consignor/real-name-authentication: doRealNameCertify()
新增两个接口:
- /mobile/consignor/register/quick: doQuickRegister()
- /mobile/consignor/identity-auth-request: submitIdentityVerifyRequest()
测试影响: 注册和验证流程
Feature
feat(ANDROID_INFRA-74): 功能简单描述
<空一行>
<功能具体的具体描述>
实现方法(可选):
<具体实现方法的描述>
<空一行>
测试影响:
<描述对现有功能的影响,测试需要注意的地方>
<较大新功能和逻辑性较强的功能需要附带部分测试用例>
Bug
fix(ANDROID_INFRA-74): 简单描述
<空一行>
<关于Bug的一般说明>
产生原因:
<描述Bug的产生原因>
解决方法:
<描述如何修复bug>
<空一行>
测试影响:
<描述对现有功能的影响,测试需要注意的地方>
Refactor
refactor(ANDROID_INFRA-74): 重构了什么地方的代码
<空一行>
<对重构内容、目的的相关描述>
所做修改:
<说明你做了那些修改>
<空一行>
测试影响:
<描述对现有功能的影响,测试需要注意的地方>
Docs
docs(ANDROID_INFRA-74): 完善xxx文档
<空一行>
<修改原因>
<空一行>
测试影响:
<描述对现有功能的影响,测试需要注意的地方>
Test
test(ANDROID_INFRA-74): 增加xxx方法自动测试案例
<空一行>
<测试详情>
<空一行>
测试影响:
<描述对现有功能的影响,测试需要注意的地方>
Style
style(ANDROID_INFRA-74): check style 修改
<空一行>
<移除了哪些资源和内容>
<空一行>
测试影响:
<描述对现有功能的影响,测试需要注意的地方>
Chore
chore(ANDROID_INFRA-74): 完善脚本
<空一行>
<简单介绍>
<空一行>
测试影响:
<描述对现有功能的影响,测试需要注意的地方>
每个Merge Request只有一个Commit
各位可以多次 commit, 但是在提交 Merge Request 的时候只能有一次 Commit message,具体操作:
git rebase -i upstream/master
<pick第一次commit>
<squash剩下所有的commit>
<把所有的Commit Message按上述格式融合>
<如果有conflict请解决conflict>
git push origin <your_branch> --force
提交merge request
小结
commit 提交时需要注意 一次提交对应一个问题,一来方便 大家对此次的提交 code Review ,二来方便后期定期问题,提交时注意规范使用空行及空格(比如中英文之间添加空格、规范使用【】或者 「 」等,具体可以参考附录5)。
附录
- 1. Git 提交的正确姿势:Commit message 编写指南
- 2. 写出 angularjs 风格的源代码提交历史
- 3. Commit Message 和 Change Log 编写指南
- 4. AngularJS Git Commit Message Conventions
- 5 .中文文案排版指北 – 中英混杂,标点符号规范
以上是关于Git Commit Message 规范实践的主要内容,如果未能解决你的问题,请参考以下文章