在预先承诺的挂钩中检索所需的git提交消息



因此,如果存在.git/hooks/pre-commit,则将在以下情况下运行:

git commit -am "foobar"

运行。那么,如何在预签名中访问所需的git提交消息?

我做一些侦探,然后将其放入.git/hooks/pre-commit中,并使文件可执行:

#!/usr/bin/env bash
echo "here is pre-commit hook"
env | sort
echo "args:"
echo $@
exit 1;

这是带有" git"

前缀的env var。
GIT_AUTHOR_DATE=@1558245421 -0700
GIT_AUTHOR_EMAIL=alex@alexs-mac.local
GIT_AUTHOR_NAME=Alexander Mills
GIT_EDITOR=:
GIT_EXEC_PATH=/Library/Developer/CommandLineTools/usr/libexec/git-core
GIT_INDEX_FILE=/Users/alex/codes/interos/notifier-server/.git/index.lock
GIT_PREFIX=

似乎没有对脚本的争论,因为echo "args:"之后什么都没有记录...

那么,如何在预加入挂钩中访问所需的提交消息?

特别是,如果提交事件的格式没有良好的格式,我希望从预先任期中保释。如果还有另一个可以做到这一点的人,那将是一个很好的答案。这个问题。

不是最理想的git挂钩情况 - 如果它是一个env集,而不是参数(git不是很安全(

所以忘记了.git/hooks/pre-commit,而是使用.git/hooks/commit-msg,在那里您可能有:

#!/usr/bin/env bash
cat $1
cat .git/COMMIT_EDITMSG
# the two above lines are the same

那是仍在等待提交的git提交消息。

最新更新