Git/Github多账号提交问题:新仓库显示旧账号署名
解决Git提交者归属错误问题
问题场景:拥有MainAccount和NewAccount两个Github账号,在NewAccount的仓库开发并推送代码后,提交记录显示为MainAccount,贡献面板未正确统计NewAccount的提交:
Git提交的身份由本地仓库配置的user.name和user.email决定,与当前登录的Github账号无关。出现这个问题是因为你当前项目的Git身份还是MainAccount的信息,按以下步骤解决:
一、设置当前仓库的Git身份(仅针对当前项目)
- 打开项目终端,执行命令设置NewAccount的用户名和邮箱:
git config user.name "你的NewAccount用户名" git config user.email "NewAccount绑定的Github邮箱" - 验证配置是否生效:
确认输出为NewAccount的信息即可。后续新提交将自动归属到NewAccount。git config user.name git config user.email
二、全局默认使用NewAccount(可选)
如果希望所有新建仓库默认使用NewAccount身份,执行全局配置命令:
git config --global user.name "你的NewAccount用户名" git config --global user.email "NewAccount绑定的Github邮箱"
三、修正已提交的历史记录(可选)
如果需要将之前错误归属的旧提交改为NewAccount,执行以下命令(注意:此操作会修改仓库历史,公共仓库请谨慎使用):
git filter-branch --env-filter ' OLD_EMAIL="MainAccount的绑定邮箱" CORRECT_NAME="你的NewAccount用户名" CORRECT_EMAIL="NewAccount绑定的Github邮箱" 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 --force --tags origin 'refs/heads/*'
四、验证结果
修改完成后,等待Github后台同步数据,刷新贡献面板即可看到提交已正确归属到NewAccount。
内容的提问来源于stack exchange,提问作者Juan J
相关产品推荐
相关产品推荐


