Git终端提交GitHub时显示错误用户名问题求助
解决GitHub多账号残留导致提交用户名错误的问题
1. 检查当前Git配置
先确认全局和仓库级的账号配置,执行以下命令:
- 查看全局配置:
git config --global --list - 查看当前仓库配置:
git config --local --list
通过输出找到多余的user.name和user.email配置项。
2. 清除多余的全局配置
如果错误账号是全局级配置的,执行对应命令删除:
- 删除全局用户名:
git config --global --unset user.name - 删除全局邮箱:
git config --global --unset user.email
如果存在多个同名配置项,用--unset-all清除所有对应项:git config --global --unset-all user.name
3. 设置正确的全局账号
重新配置你要使用的账号信息:
git config --global user.name "你的正确用户名" git config --global user.email "你的正确邮箱"
4. 检查并修正仓库级配置
部分仓库可能单独设置了账号,会覆盖全局配置。进入目标仓库目录,执行:
- 查看仓库级账号:
git config --local user.name、git config --local user.email - 若配置错误,删除并重新设置:
git config --local --unset user.name git config --local --unset user.email git config --local user.name "你的正确用户名" git config --local user.email "你的正确邮箱"
5. 修正已提交的错误用户名(可选)
如果已经有错误用户名的提交推送到远程仓库,可修改历史提交的作者信息:
执行以下命令(替换括号内的内容):
git filter-branch --env-filter ' OLD_NAME="错误的用户名" OLD_EMAIL="错误的邮箱" CORRECT_NAME="你的正确用户名" CORRECT_EMAIL="你的正确邮箱" if [ "$GIT_COMMITTER_NAME" = "$OLD_NAME" ] && [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ] then export GIT_COMMITTER_NAME="$CORRECT_NAME" export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL" fi if [ "$GIT_AUTHOR_NAME" = "$OLD_NAME" ] && [ "$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/*'
注意:强制推送会覆盖远程仓库历史,若多人协作需提前告知团队成员。
内容的提问来源于stack exchange,提问作者Kingsley Nkwocha
相关产品推荐
相关产品推荐

