配置Git commit-msg钩子后提交日志未显示模板消息问题排查
Git模板钩子不生效的问题排查
你的操作存在两个关键错误:
- 钩子文件未移除
.sample后缀:Git仅会执行hooks目录下无.sample后缀的可执行文件。你修改的是commit-msg.sample,即便给它添加了执行权限,新仓库初始化后该文件仍保留.sample后缀,Git不会触发它。正确做法是将.git_template/hooks下的commit-msg.sample重命名为commit-msg,再修改内容并添加执行权限。 - 无需保留原
.sample文件(可选):如果你已经重命名了钩子文件,原.sample文件可以保留,但不会影响钩子执行,只是没必要再对它做修改。
修正步骤:
- 进入你的
.git_template/hooks目录,执行:mv commit-msg.sample commit-msg chmod +x commit-msg - 确认全局模板目录配置正确:
git config --global init.templatedir ~/.git_template - 重新创建新目录,执行
git init,添加文件并提交后,git log -1就能看到钩子追加的消息了。
补充说明:你在钩子中写的echo "\nHi from the template commit-msg hook" >> $MSG_FILE代码是正确的,$MSG_FILE是Git自动传入的临时提交消息文件路径,只要钩子文件生效就会正常追加内容。
内容的提问来源于stack exchange,提问作者Issac Howard
相关产品推荐
相关产品推荐

