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

Windows环境下Husky的commit-msg钩子无法执行问题求助

解决Windows环境下Husky commit-msg钩子报错"cannot spawn .husky/commit-msg: No such file or directory"的问题

以下是针对该问题的具体解决方案,按优先级尝试:

1. 修正文件换行符格式

Mac默认使用LF换行符,Windows默认CRLF,Git自动转换可能导致脚本无法被正确识别:

  • 用VS Code等编辑器打开.husky/commit-msg文件,点击右下角的换行符标识(通常显示CRLF),切换为LF后保存。
  • 为避免后续自动转换,可在项目根目录添加.gitattributes文件,写入:
    .husky/* text eol=lf
    

2. 检查文件命名与权限

  • 确保commit-msg没有隐藏扩展名:打开Windows文件夹选项,勾选「显示文件扩展名」,确认文件名是commit-msg而非commit-msg.txt之类的变体。
  • 在Git Bash中执行以下命令,赋予脚本执行权限:
    chmod +x .husky/commit-msg
    chmod +x .husky/_husky.sh
    

3. 验证钩子脚本的Shebang头

确保commit-msg脚本的第一行是跨平台兼容的Shebang:

#!/usr/bin/env sh

避免使用仅适用于Mac的绝对路径(如#!/bin/sh),Windows的Git Bash会通过env找到正确的shell执行环境。

4. 重新初始化Husky钩子

若以上步骤无效,可彻底重置Husky配置:

  1. 卸载Husky:
    npm uninstall husky
    
  2. 删除现有.husky目录:
    rm -rf .husky
    
  3. 重新安装并配置:
    npm install husky --save-dev
    npx husky install
    npm set-script prepare "husky install"
    
  4. 重新添加commit-msg钩子(以commitlint为例,替换为你的实际检查命令):
    npx husky add .husky/commit-msg 'npx --no -- commitlint --edit "$1"'
    

内容的提问来源于stack exchange,提问作者AMAL MOHAN N

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:32:11