当前位置: 首页 > backend >正文

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

目录

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

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


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

  • 问题根源:.git/hooks/pre-commit 或其他钩子脚本的开头可能包含无效的 Shebang 行(如 #!/bin/sh -/)或语法错误。
  • 解决方法:
    1. 进入项目根目录的 .git/hooks 文件夹:
      cd .git/hooks 
      
    2. 检查 pre-commit 文件(或其他钩子)的开头行:
      head -n 1 pre-commit 
      
    3. 修正 Shebang 行:确保首行为 #!/bin/sh#!/usr/bin/env sh,删除多余的符号(如 -/)。
    4. 检查脚本内容:若脚本包含类似 - /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)。
  • 权限问题:确保钩子文件可执行:
    chmod +x .git/hooks/pre-commit 
    

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

若使用 Husky 管理钩子:

  1. 删除 .git/hooks 目录:
    rm -rf .git/hooks 
    
  2. 重新安装 Husky:
    npx husky install 
    
  3. 重建钩子链接:
    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"

总结步骤优先级:

  1. 检查并修正钩子脚本语法(尤其是 Shebang 行)→ 解决 90% 问题。
  2. 临时用 --no-verify 提交 → 快速绕过。
  3. 重装 Husky 或修复依赖环境 → 适用于工具链问题。
  4. 验证基础配置 → 排除其他干扰。
http://www.xdnf.cn/news/12474.html

相关文章:

  • SpringBoot+MySQL家政服务平台 设计开发
  • OpenAI对抗法庭命令:捍卫ChatGPT用户隐私之战
  • mybatis的if判断==‘1‘不生效,改成‘1‘.toString()才生效的原因
  • 浏览器后台服务 vs 在线教育:QPS、并发模型与架构剖析
  • 如何对Video视频进行SEO优化?
  • Ubuntu Cursor升级成v1.0
  • 大数据量高实时性场景下订单生成的优化方案
  • 2025主流智能体Agent终极指南:Manus、OpenManus、MetaGPT、AutoGPT与CrewAI深度横评
  • windows上的visual studio2022的项目使用jenkins自动打包
  • Visual Studio问题记录
  • 准确--k8s cgroup问题排查
  • 【学习笔记】构造函数+重载相关
  • 生成 Git SSH 证书
  • Linux 常用命令语法总结
  • 【Go语言基础【9】】字符串格式化与输入处理
  • 神经网络-Day46
  • react 常见的闭包陷阱深入解析
  • 循环神经网络(RNN)
  • 麒麟系统使用-进行.NET开发
  • 1.3 编译程序:单个C文件和多个C文件
  • Python打卡DAY46
  • JSON解析崩溃原因及解决方案
  • linux系统dd 工具介绍
  • 理解JavaScript中map和parseInt的陷阱:一个常见的面试题解析
  • win10+TensorRT+OpenCV+Qt+YOLOV8模型部署教程
  • 2025年多层PCB技术发展与厂商实践指南
  • C++总复习
  • 嵌入式学习笔记 - FreeRTOS 信号量以及释放函数
  • cursor和windsurf使用体验对比
  • NLP学习路线图(二十八):BERT及其变体