Git工程实践(一)巧用commit message

简介:

背景

大家都知道所有的版本控制系统比如svn,git等设计的核心价值之一就是为了让代码变更有迹可循,而commit mesage的价值在于让有迹可循的代码对人类更加友好,通常一个恰如其分的commit message表达的信息往往先于代码。

而现实的工程实践中,尤其是大型分布式协作的团队,因开发成员背景、习惯、经验多差异性,commit message的风格参差不齐。

那么有没有优雅而简单方式将commit message按照工程标准来落地呢?

下面分享一个git commit message的实践,其核心是通过git commit template标准化comments,希望可以抛砖引玉。

配置commit message template

通过配置相同的git commit template & markdown syntax 来标准化git message。步骤如下:

  1. 进入~/ 目录,新增__.gitmessage, 内容如下:__
brief introduction.

#brief introdction 必填,概要描述变更内容。
#change item list 选填,针对变更不同模块/业务进行分条描述,使用markdown语法。
#demo
#add xxx open api.
#- add xxx api.
#- add xxx api.
#- add xxx api.
  1. 编辑.gitconfig文件,新增.gitmessage模版配置。

[commit]

template = ~/.gitmessage

后续在提交代码时候(使用git commit没有指定-m参数)git message将会自动按照模版格式生成。效果如下:

image.png | left | 747x372

实践建议

  • 正式的commit尽量不要使用 git commit -m指定message信息,避免生成的git log可读性差。
  • commit message 格式优先使用markdown格式,生成的格式将更优雅,通过git log查看可读性更佳。
  • 较大feature发布,git message尽可能丰富,通过概要+变更列表的格式表达,如上图。
  • commit mesaage尽量使用英文。

一些思考

  • 自动化视角,通过git commit template 自动生成comments模版的方式,可以在一定程度减少漏填AoneID的情况,同时可以提升commit message质量,如果要实现严格管控可以增加githook在checkin之前增加校验,或者接入持续集成在静态检测阶段校验git commit log的有效性。
  • 工程视角,git comment, code comment即代码,应该以标准优雅的方式在团队传承。
目录
相关文章
|
7月前
|
人工智能 缓存 开发工具
结合企业实践来规范你的Git commit(含插件使用指南)
结合企业实践来规范你的Git commit(含插件使用指南)
结合企业实践来规范你的Git commit(含插件使用指南)
|
7月前
|
JSON 开发工具 git
git rebase 合并当前分支的多个commit记录
git rebase 合并当前分支的多个commit记录
152 1
|
3月前
|
开发工具 git
GIT:如何合并已commit的信息并进行push操作
通过上述步骤,您可以有效地合并已提交的信息,并保持项目的提交历史整洁。记得在执行这些操作之前备份当前工作状态,以防万一。这样的做法不仅有助于项目维护,也能提升团队协作的效率。
158 4
|
3月前
|
开发工具 git
GIT:如何合并已commit的信息并进行push操作
通过上述步骤,您可以有效地合并已提交的信息,并保持项目的提交历史整洁。记得在执行这些操作之前备份当前工作状态,以防万一。这样的做法不仅有助于项目维护,也能提升团队协作的效率。
273 3
|
4月前
|
开发工具 git
Git——commit的提交规范
Git——commit的提交规范
112 4
|
4月前
|
测试技术 持续交付 开发工具
[译] 为何每次 Git Commit 要尽可能小?
[译] 为何每次 Git Commit 要尽可能小?
|
4月前
|
Java 开发工具 Android开发
Android Studio利用Build.gradle导入Git commit ID、Git Branch、User等版本信息
本文介绍了在Android Studio项目中通过修改`build.gradle`脚本来自动获取并添加Git的commit ID、branch名称和用户信息到BuildConfig类中,从而实现在编译时将这些版本信息加入到APK中的方法。
88 0
|
5月前
|
前端开发 JavaScript 开发工具
前端优化之路:git commit 校验拦截
前面在git分支规范那篇文章里,介绍了commit提交规范,但是想要做到高效落地执行,就需要做些别的功课。
|
4月前
|
IDE 开发工具 git
我是怎么写 Git Commit message 的?
我是怎么写 Git Commit message 的?
55 0
|
6月前
|
存储 开发工具 git
蓝易云 - git中,add到暂存区,commit且push之后,暂存区域里还有内容吗
所以,当你执行 `git add`,然后是 `git commit`,最后是 `git push`之后,暂存区是空的,除非你又执行了新的 `git add`命令来添加更多的更改。
50 1

相关实验场景

更多