git commit报“author identity unknown”错误是因为未配置user.name和user.email,二者缺一不可;需执行git config --global user.name和git config --global user.email两条命令,并验证生效。

这是 Git 拒绝构造 commit 对象的硬性报错,不是 VSCode 的问题,而是本地 Git 根本没设 user.name 和 user.email —— 缺一不可,设了其中一个也不行。
git commit 报 “Author identity unknown” 是什么错误
Git 在生成 commit 对象时,强制要求填充 author 字段,包含 name 和 email 两个字符串。VSCode 的 Git 集成只是调用系统 git 命令,它不维护、也不替代这个底层校验。一旦缺失任一字段,Git 内核直接中止提交,并抛出类似这样的错误:
*** Please tell me who you are.<br>Run<br> git config --global user.email "you@example.com"<br> git config --global user.name "Your Name"<br>to set your account's default identity.
注意:这个提示本身已给出解法路径,但很多人复制时漏空格、拼错 --global、或误以为只设邮箱就够了。
怎么快速配好全局 user.name 和 user.email
在任意终端(Windows PowerShell / macOS Terminal / Ubuntu bash)中运行以下两条命令,顺序无关,但必须都执行:
-
git config --global user.name "Your Name"(引号必须是英文半角,名字可含空格) -
git config --global user.email "your@email.com"(邮箱不必真实有效,但不能为空、不能含全角字符或首尾空格)
验证是否生效:
- 运行
git config --global user.name,应输出你设的姓名 - 运行
git config --global user.email,应输出你设的邮箱 - 如果其中任一命令返回空,说明没配成功,别急着回 VSCode
为什么配了还报错?常见执行坑点
这些操作看似简单,但实操中高频出错:
-
--global手动打成--gloabal或-global(少一个短横) - 命令里漏了空格,比如写成
gitconfig--global(gitconfig不是合法命令) - 在非 Git 仓库目录下执行了不带
--global的配置,结果只写了当前项目.git/config,而 VSCode 提交时走的是全局上下文 - 用了中文引号“”或全角空格,导致值被截断或识别为空
- 改完没重启 VSCode —— 它启动时读一次 Git 配置,之后不会热更新
需要不同邮箱时怎么处理(比如公司 vs 个人项目)
全局配置只能有一套,但 Git 支持按仓库覆盖:
- 先进入目标项目根目录(确保有
.git文件夹) - 运行
git config user.name "Company Name"(不带--global) - 运行
git config user.email "work@company.com"
此时该仓库的 .git/config 会多出 [user] 小节,优先级高于全局。但要注意:VSCode 提交时仍会读取该仓库配置,所以这种设置是有效的。不过别混用——同一仓库里既设了 local 又设 global,容易自己绕晕。
真正容易被忽略的是:Git 不校验邮箱格式合法性,但 GitHub/GitLab 等平台靠邮箱匹配用户头像和提交记录。如果你设了个乱写的邮箱(比如 me@localhost),提交能成功,但不会关联到你的账号主页 —— 这个问题往往要等推送到远程后才暴露。











