You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 7下Git Hook脚本报错:ambiguous redirect问题求助

Git pre-commit钩子"ambiguous redirect"错误排查

嘿,我来帮你搞定这个问题!你遇到的「ambiguous redirect」错误,根源是把pre-commit钩子和commit-msg钩子的逻辑搞混了。

问题出在哪?

你写的这行代码:

echo "# Please include a useful commit message!" > $1

这里的$1是想指代提交消息的文件路径,但Git的pre-commit钩子根本不会传入任何命令行参数——$1是空值,shell找不到要重定向的目标,自然就抛出了“模糊重定向”的错误。

只有commit-msg钩子在触发时,才会把存储提交消息的临时文件路径作为$1参数传给脚本,这是Atlassian教程里可能提到的另一个钩子类型。

怎么解决?

分两种情况处理:

  • 如果你是想强制用户写有意义的提交信息,应该把这段代码放到commit-msg钩子里,而不是pre-commit钩子。commit-msg钩子会在用户输入提交消息后、真正完成提交前触发,刚好可以用来修改或校验提交消息。
  • 如果你只是想在pre-commit阶段给用户一个提示,不需要修改提交消息,那直接去掉重定向就行:
    #!/bin/sh
    echo "# Please include a useful commit message!"
    

另外补充下:你的Git版本2.10.2.windows.1对钩子的参数规则和新版本是一致的,不是版本的问题哦。

内容的提问来源于stack exchange,提问作者user9141560

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:01:42