为何GitHub替换我仓库的提交作者名?如何恢复为自身账户?
问题修复:GitHub提交作者显示错误账户
问题背景
本地仓库提交的git log显示作者为自己的账户MyAccountName <dummy@email.com>,本地git配置也正确关联自己的GitHub仓库,但GitHub页面上所有提交的作者都显示为无关账户ExampleOrgz,后续推送的提交也存在同样问题。
可能原因及修复步骤
1. 检查GitHub邮箱关联
登录自己的GitHub账户,进入Settings → Emails:
- 确认本地配置的
dummy@email.com已添加到自己的账户中并完成验证 - GitHub会根据提交的邮箱匹配关联账户,若该邮箱被
ExampleOrgz账户绑定,需确保自己的账户优先关联该邮箱(或更换本地提交邮箱为自己GitHub账户已验证的邮箱)
2. 修正本地提交历史并强制推送
若邮箱已正确关联自己的账户,但历史提交仍显示错误作者,需重写提交历史:
- 先备份本地仓库(复制整个仓库文件夹到安全位置)
- 在仓库根目录执行以下脚本(替换为自己的账户信息):
git filter-branch --env-filter ' OLD_EMAIL="dummy@email.com" CORRECT_NAME="MyAccountName" CORRECT_EMAIL="dummy@email.com" if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ] then export GIT_COMMITTER_NAME="$CORRECT_NAME" export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL" fi if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ] then export GIT_AUTHOR_NAME="$CORRECT_NAME" export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL" fi ' --tag-name-filter cat -- --branches --tags
- 强制推送到远程仓库:
git push origin --force --all git push origin --force --tags
3. 验证推送凭据
由于使用了个人访问令牌,需确认本地存储的凭据属于自己的账户:
- 在Mac上打开钥匙串访问,搜索
github.com,检查对应的账户是否为MyAccountName - 若存储的是
ExampleOrgz的凭据,删除后重新推送,输入自己的个人访问令牌
4. 确认全局git配置
检查全局git配置是否正确:
git config --global user.name git config --global user.email
确保输出为自己的账户名和已验证的邮箱,避免后续提交出现同样问题
内容的提问来源于stack exchange,提问作者andrzej541
相关产品推荐
相关产品推荐

