You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git提交显示系统名称而非用户名,配置全局凭据后仍异常

解决Git提交记录显示系统名称的问题

1. 检查并修正Git配置

全局配置可能被当前仓库的局部配置覆盖,先确认当前仓库的实际生效配置:

  • 查看当前仓库的用户名:git config user.name
  • 查看当前仓库的邮箱:git config user.email

如果输出是系统名称MySystemName和<XXXX>,说明局部配置优先级高于全局,可执行以下命令修改局部配置:

git config user.name "myusername"
git config user.email "myemail@gmail.com"

若不需要单独的局部配置,也可以直接删除局部配置项,让全局配置生效:

git config --unset user.name
git config --unset user.email

完成后,新的提交将使用正确的用户名和邮箱信息。

2. 修改已存在的历史提交记录

已推送到远程的历史提交不会自动更新,需批量替换旧的作者信息:

  1. 执行以下命令(将命令中的旧名称、旧邮箱替换为你实际的系统名称和占位邮箱):
git filter-branch --env-filter '
OLD_NAME="MySystemName"
OLD_EMAIL="XXXX"
NEW_NAME="myusername"
NEW_EMAIL="myemail@gmail.com"

if [ "$GIT_COMMITTER_NAME" = "$OLD_NAME" ] && [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_COMMITTER_NAME="$NEW_NAME"
    export GIT_COMMITTER_EMAIL="$NEW_EMAIL"
fi
if [ "$GIT_AUTHOR_NAME" = "$OLD_NAME" ] && [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_AUTHOR_NAME="$NEW_NAME"
    export GIT_AUTHOR_EMAIL="$NEW_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags
  1. 修改完成后,强制推送到远程仓库(注意:如果是多人协作仓库,强制推送会覆盖远程历史,需提前和团队沟通;个人仓库可直接执行):
git push --force --tags origin 'refs/heads/*'

验证结果

执行git log -n 1查看最新提交记录,确认作者信息已更新为你的用户名和邮箱。

内容的提问来源于stack exchange,提问作者Ashish Choudary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 19:52:17