必须用 git config --global commit.template 指向绝对路径的模板文件,相对路径会静默失败;模板不能有 .txt 后缀,首行不能为空;Sublime 需加 -w 参数阻塞等待,否则模板不加载;GitSavvy 插件绕过系统配置,需单独设置 commit_template。

git commit.template 怎么设才生效
必须用 git config --global commit.template 指向一个**绝对路径**的模板文件,相对路径会静默失败。模板文件本身不能有 .txt 后缀(Git 不认),也不需要可执行权限,但内容第一行不能是空行——否则 Git 会跳过加载,直接弹出空白编辑器。
- Linux/macOS 示例:
git config --global commit.template /home/you/.gitcommit - Windows 示例:
git config --global commit.template C:\Users\you\.gitcommit(双反斜杠或正斜杠都行) - 验证是否生效:
git config --get commit.template,输出应为完整路径
Sublime 作为 Git 编辑器时 template 不显示?
不是模板没配好,而是 Sublime 启动方式不对——subl -n -w 中的 -w 参数缺失或写错(比如写成 --wait)。Git 需要这个参数才能阻塞等待你保存并关闭窗口;没它,Git 会立刻读取空文件,模板内容根本不会加载。
- 确认
subl --help能正常输出,否则-w无效 - Windows 用户注意:路径带空格必须用单引号包裹,如
'C:Program FilesSublime Textsubl.exe' -n -w - 如果已配置但模板仍不出现,运行
git config --list --show-origin | grep editor,检查是否被 local 配置覆盖
模板文件里怎么写才不被 Git 忽略
Git 只保留以 #、;、/* 开头的注释行和非空首行后的实际内容。所有以 # 开头的行都会被提交时自动删掉,所以模板结构要靠空行分隔,而不是靠注释说明。
- 推荐最小可用模板:
feat: # 一行描述改动目的 # # Body (可选,解释为什么改、影响范围) # # Footer (可选,关联 issue、breaking change 等) #
- 不要写
OverView:这类冒号后带空格的标题行——Git 会把它当普通内容提交,破坏规范 - 换行符必须是 LF(Unix 风格),Windows 上用 Notepad++ 或 VS Code 保存时选 “UTF-8 without BOM”
GitSavvy 插件下 template 为啥不触发
GitSavvy 的 Git: Commit 命令走的是自己实现的提交流程,**完全绕过系统 Git 的 commit.template 配置**。它只读取插件自己的 commit_template 设置项,且路径必须相对于 Sublime 的 Packages 目录。
- 打开
Preferences > Package Settings > Git > Settings - 在 User Settings 里加:
"commit_template": "User/git_commit_template"
(对应文件路径是Packages/User/git_commit_template) - 该文件内容格式和系统模板一致,但 GitSavvy 不支持
#注释自动过滤,需手动删掉注释行再提交
Git 的 template 机制本身简单,但 Sublime 场景下真正起效的前提是:系统 Git 配置正确 + Sublime 启动参数无误 + 模板文件编码和格式合规。三者缺一不可,任一环节出问题,都会表现为“模板没加载”,而现象看起来像配置失效。


















