我有一个预提交钩子,当我运行时返回此错误:
error: cannot spawn .git/hooks/pre-commit: No error
我在顶部有一个#!/bin/sh
,并且肯定在上面使用了chmod +x
。但是,当没有此类文件或目录错误时,这些似乎是修复程序。我的错误只是说No error
,我无法弄清楚为什么。
钩子中的代码:
#!/bin/sh
changes() {
git diff --name-only --diff-filter=AMDR --cached @~..@
}
if changes | grep -q dirname {
echo "Test"
}
首先检查您的脚本是否有最终换行符,如下所示。
缺少它将触发"无错误"消息。
还要检查 eol 样式(行尾(:LF 是那些 bash 脚本的首选。
OP compsciman在评论中证实,从2.21切换到Git For Windows 2.26解决了这个问题。
最近对pre-commit
的唯一修改涉及删除我在"如何为 Git 控制台着色?"中提到的git config --bool
选项(提交 81e3db4(。