gpt4 book ai didi

git 提交前和提交后 Hook 未运行

转载 作者:太空狗 更新时间:2023-10-29 14:03:31 31 4
gpt4 key购买 nike

什么会导致我的 git 提交前和提交后 Hook 无法运行?

(请注意:这个问题不是重复的;其他每个问题的答案是 chmod +x 或“没有文件扩展名”,两者都不是问题这里)

它们是可执行的:

$ ls -alh .git/hooks/*-commit
-rwxr-xr-x ….git/hooks/post-commit
-rwxr-xr-x ….git/hooks/pre-commit

这是他们每个人的内容:

#!/bin/sh
echo "$0 正在运行"
导出 1

手动运行它们:

$ .git/hooks/预提交
.git/hooks/pre-commit 正在运行

但它们不是由 git 在提交时运行的:

$ git commit -am "测试钩子(Hook)"
[master d17c0f38] 测试钩子(Hook)
1 个文件已更改,1 个插入(+)

这是 git 2.16.2

最佳答案

例如,我看到配置 core.hooksPath 被设置为不同于 $GIT_DIR/hooks 的另一个路径,这使得该文件夹中的 Hook 被忽略。

检查您的 git config core.hooksPath 输出,更普遍的是检查 git config -l 是否有任何异常设置。

请注意 git commit -n would skip the pre-commit hook .

由 wolever 编辑:

我已经将它添加到我的 core.hooksPath 目录中的脚本中,如果它们存在,它将运行 repo 的钩子(Hook):

#!/bin/sh
set -eu
hook_name="$(basename "$0")"
hook_script=".git/hooks/$hook_name"
[ -e "$hook_script" ] && "$hook_script"
exit 0

关于git 提交前和提交后 Hook 未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49912695/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com