如何在commit-msg钩子中捕获git commit消息?

时间:2018-01-16 15:42:55

标签: git bash githooks

我写了一个剧本

#!/bin/bash
commit_msg=$1
echo "Your commit message: $commit_msg"
hooks/commit-msg中的

,用于验证

中的提交消息
git commit -m "fixed a bug"

但是当我运行钩子时,我有:

Your commit message: .git/COMMIT_EDITMSG

而不是

Your commit message: fixed a bug

如何将提交消息捕获到变量中?

我已阅读How to capture a git commit message and run an action 但它并没有帮助我,因为那个钩子是post-receive而我需要它commit-msg所以我没有提交我的提交信息

git log -1 HEAD --pretty=format:%s

因为我的钩子阻止了提交。

1 个答案:

答案 0 :(得分:4)

来自docs

  

commit-msg钩子接受一个参数,该参数也是包含开发人员编写的提交消息的临时文件的路径

因此,您需要阅读给定文件的内容以提供消息:

commit_msg=$(cat "${1:?Missing commit message file}")