讲师中心 微信公众号
AI工具推荐 视频效率加速

Git提交代码失败的原因

轻雪君_4570

轻雪君_4570

发布时间:2026-11-06 06:04:03

|

460人浏览过

|

来源于php中文网

原创

Git提交失败主因是身份未配置、钩子拦截、不在仓库目录或远程推送问题;需依次检查user.name/email、pre-commit脚本、.git目录存在性及SSH/Token认证。

git提交代码失败的原因

Git提交失败,八成不是Git坏了,而是你漏掉了某个关键环节——身份没配、钩子卡住、目录不对,或者根本没进对仓库。

git commit 报 “Please tell me who you are” 或 “empty ident name”

这是最典型的首次提交失败现象,错误信息里常带 fatal: empty ident name 或直接提示“请告诉我你是谁”。本质是 Git 根本不知道该把这次提交记在谁名下。

  • Git 必须有 user.name 和 user.email 才能生成合法提交对象,缺一不可
  • 它按顺序查:当前仓库的 .git/config → 全局 ~/.gitconfig → 环境变量(如 GIT_AUTHOR_NAME),全空就报错
  • 常见于新装系统、Docker 容器、CI 脚本、VS Code 终端未加载 shell 配置等场景
  • 别用 git config --local user.name 试完就跑——本地配置只对当前仓库生效,换个项目还得重配;建议优先跑:
    git config --global user.name "Your Name"
    git config --global user.email "you@example.com"

pre-commit 钩子执行失败(比如 Husky + ESLint)

你敲了 git commit -m "fix",终端突然刷出一堆红色报错,最后停在 husky - pre-commit script failed。这不是 Git 拒绝你,是项目自己设的门禁被触发了。

Gitguard Skill
Gitguard Skill

Git 安全扫描与仓库健康审计 — 基于熵的密钥检测、复合健康评分、提交质量分析、陈旧分支清理以及依赖扫描

下载
  • 典型表现:报 eslint --fix [FAILED]、lint-staged not found、Cannot find module 'xxx'
  • 原因可能是:Node 版本不一致导致脚本解析失败、node_modules 没装全、Windows 下路径分隔符写死为 /、或 .husky/pre-commit 脚本里用了未声明的命令
  • 临时绕过方法(仅限调试):git commit --no-verify -m "temp",但别推到主分支
  • 根治办法:进 .husky/pre-commit,确认第一行是 #!/usr/bin/env sh(别写成 #!/bin/bash),再检查里面调用的命令是否在 $PATH 中可执行

执行 git commit 时提示 “not a git repository”

连提交入口都找不到,说明你压根不在 Git 仓库里,或者 Git 根本没初始化。

  • 先运行 git status,如果报错 fatal: not a git repository,立刻执行 pwd 看当前路径,再 ls -a | grep .git 确认有没有 .git 目录
  • 如果是全新项目,必须先 git init;如果是克隆的项目,大概率是你 cd 错了目录(比如在父文件夹里直接敲命令)
  • 还有一种隐蔽情况:你在 WSL 或 Docker 里挂载了 Windows 路径,Git 可能因所有权问题拒绝操作,此时要加安全目录:git config --global --add safe.directory /path/to/your/repo

git push 失败但 commit 成功了

这其实已经脱离“提交失败”范畴,但新手常混淆。commit 是本地操作,push 是网络操作,两者失败原因完全不同。

  • 如果 push 报 Permission denied (publickey),说明 SSH 密钥没配好或没加到 GitCode/GitHub;报 Authentication failed 则大概率是用了密码——现在主流平台(包括 GitCode)已停用密码认证,必须用 Personal Access Token 替代
  • 如果报 Updates were rejected because the remote contains work that you do not have locally,说明远程有你没拉的新提交,得先 git pull origin main 合并或 git pull --rebase origin main 变基,再 push
  • 注意:不要用 git push --force 硬顶,尤其在共享分支上,会丢同事的提交

真正容易被忽略的是:很多失败不是单一原因,而是组合拳——比如你刚在新机器上装完 Git,既没配 user.name,又忘了 git init,还误以为 VS Code 的提交按钮会自动帮你搞定一切。实际开发中,先 git status、再 git config --global --list、最后看报错里最关键的那行英文,比瞎搜“Git 提交不了”快得多。

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

相关专题

更多
自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

7159

2023.07.05

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

2000

2023.07.06

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

1194

2023.07.24

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

4637

2024.04.09

git怎么对比两个版本的文件内容
git怎么对比两个版本的文件内容

要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

4541

2024.04.09

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

0

2026.11.05

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

0

2026.11.05

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

0

2026.11.04

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

0

2026.11.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
vscode手册
vscode手册

共0课时 | 0人学习

Git 教程
Git 教程

共21课时 | 8.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn