Git 提交作者老是混用账号?一招给单个项目单独配 user.name/email(保姆级实测避坑)

Git 提交作者老是混用账号?一招给单个项目单独配 user.name/email(保姆级实测避坑)

Git 提交作者老是混用账号?一招给单个项目单独配 user.name/email(保姆级实测避坑)

同一台电脑上同时维护公司项目和个人项目时,最容易出现一个问题:提交记录里的作者变成了另一个账号。原因很简单——只配了全局的user.name/user.email,所有仓库都共用。

本文手把手教你:只给某一个 Git 项目单独设置用户名和邮箱,不影响其他仓库,也不动全局配置。全程实测,照着做即可。

一、背景:为什么需要「项目级」配置

Git 的user.nameuser.email有三档作用域:

作用域命令参数生效范围配置文件位置
系统级--system整台机器所有用户Git 安装目录
全局级--global当前用户所有仓库~/.gitconfig
项目级--local(默认)仅当前仓库项目内.git/config

我们只要改「项目级」,就能让某个仓库用自己的账号提交,其他仓库继续用全局配置。

二、操作步骤

第 1 步:进入项目的.git文件夹

先找到你的项目根目录,进入里面的.git隐藏文件夹:

cd你的项目路径/.git

💡 Windows 用户也可以在文件管理器里打开项目目录,勾选「显示隐藏的项目」,双击.git进入。

第 2 步:查看当前项目的 Git 配置

进入.git后,直接查看config文件,确认当前项目有没有单独配置过:

catconfig

如果是新克隆/新建的项目,这里通常只有[core]等基础配置,看不到user.name/user.email——说明当前项目在沿用全局账号。

第 3 步:为该项目单独设置用户名和邮箱

执行下面两条命令(把引号里的内容换成你自己的):

gitconfig user.name'你的账号名'gitconfig user.email'你的邮箱'

⚠️ 注意:这里的引号必须是英文半角引号',不要从中文输入法打出来的‘’,否则命令会报错。

因为此时你已在.git目录内,不加--global默认就是--local,配置只会写进当前项目的.git/config

第 4 步:再次查看配置,确认生效

catconfig

这时应该能看到新增了[user]段:

[user] name = 你的账号名 email = 你的邮箱

有这两行,说明项目级配置已经生效。

三、更简单的方式(不用进 .git 也能配)

其实不必真的切到.git目录。在项目根目录下执行同样的命令,Git 会自动找到当前仓库并写入.git/config

# 在项目根目录执行gitconfig user.name'你的账号名'gitconfig user.email'你的邮箱'

效果与「先cd .git再配置」完全一致,日常更推荐这种方式。

四、常见坑与排查

1. 引号用了中文弯引号

错误写法:git config user.name ‘你的账号名’(中文‘’
正确写法:git config user.name '你的账号名'(英文'
中文引号在 Shell 里不是合法的字符串定界符,会直接报语法错误。

2. 以为配完就全局生效了

--local只对当前仓库生效。如果你在另一个项目里提交,作者还是全局账号——这是正常的,不是没配成功。

3. 提交后作者还是不对

检查优先级:项目级 > 全局级 > 系统级。如果项目级配了但提交仍异常,用下面命令确认最终生效值:

gitconfig user.namegitconfig user.email

打印出来的就是实际会用的账号。

4. 想确认提交到底用的哪个身份

随便改个文件提交一次,看 author:

gitlog-1--pretty='%an <%ae>'

输出的name <email>就是本次提交的作者身份。

五、撤销 / 恢复

如果配错了,删掉项目级配置即可退回全局:

gitconfig--unsetuser.namegitconfig--unsetuser.email

删完再cat .git/config[user]段消失,提交自动回到全局账号。

写在最后

  • 全局配置用git config --global,适合你 80% 的仓库;
  • 个别需要换账号的仓库,用本文的--local(项目级)单独覆盖即可;
  • 记住优先级:项目 > 全局 > 系统,排查身份问题时先看项目级。

觉得本文有帮助,别忘了点赞 👍 + 收藏 ⭐,你的支持是我持续输出的动力!