git commit 执行报错 sh: -/: invalid option
目录
- 目录
- 1. 检查 Git 钩子脚本(核心步骤)
- 2. 临时绕过钩子(快速提交)
- 3. 修复钩子依赖环境
- 4. 重新初始化 Husky(如适用)
- 5. 验证用户配置
Tips: 如果是 clone 下来的新项目直接进行 步骤 4
。
1. 检查 Git 钩子脚本(核心步骤)
- 问题根源:
.git/hooks/pre-commit
或其他钩子脚本的开头可能包含无效的 Shebang 行(如#!/bin/sh -/
)或语法错误。 - 解决方法:
- 进入项目根目录的
.git/hooks
文件夹:cd .git/hooks
- 检查
pre-commit
文件(或其他钩子)的开头行:head -n 1 pre-commit
- 修正 Shebang 行:确保首行为
#!/bin/sh
或#!/usr/bin/env sh
,删除多余的符号(如-/
)。 - 检查脚本内容:若脚本包含类似
- /path/to/node
的无效参数,需修正为合法命令(如node script.js
)。
- 进入项目根目录的
2. 临时绕过钩子(快速提交)
若需紧急提交,可跳过钩子检查:
git commit --no-verify -m "提交信息"
注意:此操作会忽略代码规范检查(如 ESLint),仅建议临时使用。
3. 修复钩子依赖环境
- Node.js 路径问题:若钩子调用 Node 命令但系统未识别:
- 确认 Node 已安装:
node -v
- 在 Shebang 行使用完整路径(如
#!/usr/bin/env node
)。
- 确认 Node 已安装:
- 权限问题:确保钩子文件可执行:
chmod +x .git/hooks/pre-commit
4. 重新初始化 Husky(如适用)
若使用 Husky 管理钩子:
- 删除
.git/hooks
目录:rm -rf .git/hooks
- 重新安装 Husky:
npx husky install
- 重建钩子链接:
npx husky add .husky/pre-commit "npm test"
5. 验证用户配置
确保 Git 全局配置正确(虽非直接原因,但需排除干扰):
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
总结步骤优先级:
- 检查并修正钩子脚本语法(尤其是 Shebang 行)→ 解决 90% 问题。
- 临时用
--no-verify
提交 → 快速绕过。 - 重装 Husky 或修复依赖环境 → 适用于工具链问题。
- 验证基础配置 → 排除其他干扰。