跳转至

git commit编写

📝 Git Commit 规范化教程

目前业界最主流的规范是 Conventional Commits (约定式提交)。它将提交信息分为:类型 (Type)范围 (Scope, 可选)描述 (Subject)

1. 标准格式结构

<type>(<scope>): <subject>

<body> (可选)

<footer> (可选)

2. 核心组成部分详解

① Type(类型):必填

用于说明这次提交的性质。常用的标签如下:

标签 说明 适用场景
feat 新功能 增加了新的 OCaml 模块或函数
fix 修补 Bug 修复了逻辑错误或崩溃
docs 文档 修改了 README、注释或说明文件
style 格式 不影响代码含义的修改(空格、格式化、分号等)
refactor 重构 既不是新增功能也不是修改 Bug 的代码变动
perf 性能 提高性能的代码更改
test 测试 添加缺失测试或更正现有的测试
chore 事务 构建过程或辅助工具的变动(如更新 .gitignore

② Scope(范围):可选

说明提交影响的范围。例如:(parser), (lexer), (README)

③ Subject(主题):必填

对变动的简短描述。

  • 不要超过 50 个字符
  • 结尾不加句号
  • 尽量使用动词开头(如 add, update, fix)。

3. 规范示例

✅ 正面典型(好例子)

  • feat(lexer): add support for floating point numbers
  • fix(eval): prevent stack overflow in recursive calls
  • docs: update installation steps in README
  • chore: add _build directory to .gitignore

❌ 反面典型(避坑)

  • fix: bug (没说修了啥)
  • update (毫无意义)
  • 完成实验一 (不符合 Type 规范,难以检索)

如果你的改动非常复杂,短句写不下,就需要用到 Body

feat(compiler): implement pattern matching for lists

The current evaluator only supports basic integers. This commit
adds support for list matching using the `::` operator.

Fixes #42
  • Body: 解释代码改动的原因逻辑,而不是翻译代码(代码 Git 已经存了)。
  • Footer: 通常用于关闭 GitHub Issue(如 Fixes #编号)。

5. 在终端编写的技巧

如果你想写多行 Commit,不要-m 参数:

  1. 输入 git commit
  2. Git 会自动打开你默认的编辑器(通常是 Vim 或 Nano)。
  3. 在里面按照格式写好后保存退出,提交就完成了。

如果你只想写简单的单行:

git commit -m "feat: init ocaml project with dune"