前言

Git commit message 是用来描述代码更改的文本信息。其主要的功能如下:

  1. 记录更改历史:
    • 每次提交(commit)都会生成一个包含详细描述的 Git 提交信息。这个信息帮助开发者了解每次更改的目的、内容和原因。
    • 提交信息是项目代码的变更历史的一部分,团队成员通过这些信息可以了解谁做了哪些更改。
  2. 提高代码协作性:
    • 当多人合作开发时,清晰的提交信息可以帮助团队成员快速理解每次提交的内容,而不需要逐行检查代码。尤其在多人协作的项目中,良好的提交信息可以有效避免混淆和冲突。
  3. 便于代码回溯:
    • 如果出现错误或问题,可以通过 Git 提交信息追溯到错误引入的提交。开发者可以基于提交信息快速定位问题,并回滚到正常的版本。
  4. 改进版本控制管理:
    • 通过使用有意义的提交信息,Git 使得版本控制的管理变得更加高效。当需要做版本发布、版本切换或调试时,提交信息可以帮助快速了解每个版本的变化。
  5. 生成自动化文档(一般用不到):
    • 在许多开发流程中,Git 提交信息与 CI/CD、自动化工具等流程紧密相连。例如,一些工具会通过提交信息自动生成变更日志(Changelog),方便团队或用户查看更新内容。

那么如何写好 Git Commit 信息呢?———— 规范

注意:如果你在参与团队开发,那么规范应该以团队要求为主,这里主要是日常个人仓库维护。

基本格式

1
2
3
4
5
6
7
8
9
:memo: docs: copilot无法在 vscode 中工作 (这是commit -m 的内容,:memo:是Gitmoji,push后会自动渲染)

# 请为您的变更输入提交说明。以 '#' 开始的行将被忽略,

# 而一个空的提交说明将会终止提交,

# 要确保提交说明清晰、简洁。

# ...

更详细的 rules 请参考:Git 提交信息规范

自定义短语

能大大减少记忆和输入 Gitmoji 的时间。

比如可以用 ref 来替代 :recycle: refactor:

部分输入法存在乱码,所以非必要,还是把短语加到默认输入法里,然后导出备份一份。

以搜狗输入法举例

  1. 搜狗输入法点击属性

  2. 属性中找到自定义短语

  3. 在自定义短语中将在其他地方找到的『』复制粘贴到其中,然后自定义字符来打出来它。

以微软输入法举例

  1. 对着「英/中」右键->

  2. 用户自定义短语。->

  3. 添加->

1
2
3
4
5
拼音:lf
侯选位置:1
短语:「

# 短语用复制粘贴的方式。

之后拼音输入 lf 就会有对应的候选词,并且这些都可以导出。也不用考虑候选位置,如果碰到重复的,它会根据添加顺序依次排列。

常用 Gitmoji 和 Git Message 对照表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
🎉 init: 初始化

🚀 release: 发布新版本

🎨 style: 代码风格修改(不影响代码运行的变动)

✨ feat: 添加新功能

🐛 fix: 修复 bug

📝 docs: 对文档进行修改

♻️ refactor: 代码重构(既不是新增功能,也不是修改 bug 的代码变动)

⚡ perf: 提高性能的代码修改

🧑‍💻 dx: 优化开发体验

🔨 workflow: 工作流变动

🏷️ types: 类型声明修改

🚧 wip: 工作正在进行中

✅ test: 测试用例添加及修改

🔨 build: 影响构建系统或外部依赖关系的更改

👷 ci: 更改 CI 配置文件和脚本

❓ chore: 其它不涉及源码以及测试的修改

⬆️ deps: 依赖项修改

🔖 release: 发布新版本

更详细的 Gitmoji 请参考:1.Gitmoji 2.initial docs

案例

成品展示

反面教材