How to capture a git commit message in commit-msg hook?
Я написал скрипт
#!/bin/bash
commit_msg=$1
echo "Your commit message: $commit_msg"
в hooks/commit-msg
which validates the commit message in
git commit -m "fixed a bug"
But when I run the hook, I have:
Your commit message: .git/COMMIT_EDITMSG
вместо
Your commit message: fixed a bug
How can I capture the commit message into a variable?
I've read How to capture a git commit message and run an action but it didn't help me because that hook was for post-receive
и мне это нужно для commit-msg
so I don't have my commit message in
git log -1 HEAD --pretty=format:%s
because my hook blocks from doing a commit.
1 ответ
Из документов:
Хук commit-msg принимает один параметр, который снова является путем к временному файлу, который содержит сообщение о фиксации, написанное разработчиком.
Поэтому вам необходимо прочитать содержимое данного файла, чтобы предоставить сообщение:
commit_msg=$(cat "${1:?Missing commit message file}")