git commit 执行报错 sh: -/: invalid option

目录

  • 目录
    • [1. 检查 Git 钩子脚本(核心步骤)](#1. 检查 Git 钩子脚本(核心步骤))
    • [2. 临时绕过钩子(快速提交)](#2. 临时绕过钩子(快速提交))
    • [3. 修复钩子依赖环境](#3. 修复钩子依赖环境)
    • [4. 重新初始化 Husky(如适用)](#4. 重新初始化 Husky(如适用))
    • [5. 验证用户配置](#5. 验证用户配置)

Tips: 如果是 clone 下来的新项目直接进行 步骤 4


1. 检查 Git 钩子脚本(核心步骤)

  • 问题根源:.git/hooks/pre-commit 或其他钩子脚本的开头可能包含无效的 Shebang 行(如 #!/bin/sh -/)或语法错误。
  • 解决方法:
    1. 进入项目根目录的 .git/hooks 文件夹:

      bash 复制代码
      cd .git/hooks 
    2. 检查 pre-commit 文件(或其他钩子)的开头行:

      bash 复制代码
      head -n 1 pre-commit 
    3. 修正 Shebang 行:确保首行为 #!/bin/sh#!/usr/bin/env sh,删除多余的符号(如 -/)。

    4. 检查脚本内容:若脚本包含类似 - /path/to/node 的无效参数,需修正为合法命令(如 node script.js)。


2. 临时绕过钩子(快速提交)

若需紧急提交,可跳过钩子检查:

bash 复制代码
git commit --no-verify -m "提交信息"

注意:此操作会忽略代码规范检查(如 ESLint),仅建议临时使用。


3. 修复钩子依赖环境

  • Node.js 路径问题:若钩子调用 Node 命令但系统未识别:

    • 确认 Node 已安装:node -v
    • 在 Shebang 行使用完整路径(如 #!/usr/bin/env node)。
  • 权限问题:确保钩子文件可执行:

    bash 复制代码
    chmod +x .git/hooks/pre-commit 

4. 重新初始化 Husky(如适用)

若使用 Husky 管理钩子:

  1. 删除 .git/hooks 目录:

    bash 复制代码
    rm -rf .git/hooks 
  2. 重新安装 Husky:

    bash 复制代码
    npx husky install 
  3. 重建钩子链接:

    bash 复制代码
    npx husky add .husky/pre-commit "npm test"

5. 验证用户配置

确保 Git 全局配置正确(虽非直接原因,但需排除干扰):

bash 复制代码
git config --global user.name "Your Name"
git config --global user.email "email@example.com"

总结步骤优先级:

  1. 检查并修正钩子脚本语法(尤其是 Shebang 行)→ 解决 90% 问题。
  2. 临时用 --no-verify 提交 → 快速绕过。
  3. 重装 Husky 或修复依赖环境 → 适用于工具链问题。
  4. 验证基础配置 → 排除其他干扰。
相关推荐
Hello--_--World12 分钟前
Vue指令:v-if vs v-show、v-if 与 v-for 的优先级冲突、自定义指令
前端·javascript·vue.js
神の愛13 分钟前
ReactHooks
前端·javascript·react.js
蝎子莱莱爱打怪19 分钟前
用好CC,事半功倍!Claude Code 命令大全,黄金命令推荐、多模型配置、实践指南、Hooks 和踩坑记录大全
前端·人工智能·后端
本末倒置18331 分钟前
VS Code 这次稳了!CSS Anchor Positioning 彻底终结 WebView 定位卡顿
前端
MonkeyKing71551 小时前
Flutter状态管理实战:全局、局部、页面状态拆分指南
前端·flutter
Panzer_Jack1 小时前
Copiwaifu:一个和 Claude Code、Codex、Copilot 等 AI 编程工具联动的 Live2D 桌宠[特殊字符]
前端·人工智能·copilot·web·live2d·pixi.js·easy-live2d
阡陌..1 小时前
202605新版git_2.54.0常用操作指令
大数据·git·elasticsearch
开源情报局2 小时前
从小红书评论区挖需求:我准备用 opencode 写一个 Chrome 插件
前端·javascript·chrome
用户125758524362 小时前
XYGo Admin 三级权限体系:RBAC 动态路由 + v-auth 按钮控制 + 字段级过滤全解析
前端