我写了一个剧本
#!/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
因为我的钩子阻止了提交。
答案 0 :(得分:4)
来自docs:
commit-msg钩子接受一个参数,该参数也是包含开发人员编写的提交消息的临时文件的路径
因此,您需要阅读给定文件的内容以提供消息:
commit_msg=$(cat "${1:?Missing commit message file}")