0
点赞
收藏
分享

微信扫一扫

Git Commit Message 规范实践

晗韩不普通 2022-09-19 阅读 206
gitandroid

文章目录

背景

任何一笔提交都是有原因的,因此 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。

: 关于change的相关描述。可以多行,可以包含空行。 : 测试影响说明。必须是关键字“测试影响”开头的一段说明。可以多行,可以包含空行。 注意:(): 里面的":"中英文都兼容。

示例

feat(ANDROID_INFRA-90): seperate registration from identity verification

原来的两个接口实现不动,但是标为 Deprecated

  1. /mobile/consignor/register/quick: doRegister()
  2. /mobile/consignor/real-name-authentication: doRealNameCertify()

新增两个接口:

  1. /mobile/consignor/register/quick: doQuickRegister()
  2. /mobile/consignor/identity-auth-request: submitIdentityVerifyRequest()

测试影响: 注册和验证流程

Feature

Bug

Refactor

Docs

Test

Style

Chore

每个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 .中文文案排版指北 – 中英混杂,标点符号规范
举报

相关推荐

0 条评论