第一次 git commit 完,git log 一看,作者那栏显示的是公司电脑的旧账号或者一串主机名,推到代码平台上头像和贡献统计都对不上。原因很简单:git配置用户名和邮箱这一步没做,git 不会自动猜你是谁。还有种更隐蔽的情况:两个人的邮箱配成了一样的,平台上两人的提交全算到一个人头上。
全局配置,两条命令
git config --global user.name lihuagit config --global user.email lihua@example.com名字里带空格的话,两边要加上半角引号。--global 表示写入用户主目录下的 .gitconfig 文件,对这台机器上所有仓库生效,多数人配一次就够用很多年。Windows 下这个文件在 C 盘的用户目录里,macOS 和 Linux 在 home 下,用文本编辑器直接改也行,就是格式别写坏。
配置分三级,就近覆盖
完整说有 system、global、local 三级,system 级基本不用动,local 级写在仓库的 .git/config 里,优先级最高。公司电脑上建议全局配公司邮箱,个人项目目录里去掉 --global 单独覆盖一遍,免得下班后的提交也挂在公司账号名下。弄清这三级,git配置用户名和邮箱的覆盖问题基本都能定位到具体文件。接手别人的仓库时也先看一眼仓库里有没有私改过的 local 配置,避免顶着别人的身份提交。
三个检查点
- git config user.name:看当前目录下实际生效的值
- git config --list --show-origin:能看到每条配置来自哪个文件,排查覆盖问题最直接
- git log 打开后看 Author 开头那两行,能核对历史提交用的身份
注意两点:改配置只影响之后的提交,历史提交的作者不会跟着变,最近一条可以用 git commit --amend --reset-author 修正,但已推送到公共分支的提交别随便改写。邮箱不要求真实可收信,介意暴露的话,多数平台提供 noreply 形式的替代邮箱,用它提交贡献照样统计。