如何修改Git提交用户名?解决提交显示Your-Name的问题
解决Git提交用户名显示错误的问题
别急,这个问题超常见,咱们一步步来把它搞定!
第一步:先搞清楚当前的Git配置情况
Git的用户名/邮箱配置分三个层级(优先级从高到低:本地仓库 > 全局 > 系统),先检查到底是哪个层级的配置出了问题:
- 检查全局配置:打开Git Bash,直接输入:
如果输出是git config --global user.nameYour-Name,说明全局配置是错的。 - 检查当前仓库的本地配置:进入你的Android Studio项目目录,输入:
如果这里也输出git config user.nameYour-Name,说明这个仓库单独配置了错误的用户名。
第二步:修改配置,让未来的提交显示正确用户名
情况1:修改全局配置(所有新仓库都会生效)
如果全局配置是错的,执行下面的命令替换成你的真实信息:
git config --global user.name "你的真实GitHub用户名" git config --global user.email "你的GitHub绑定邮箱"
(顺便改邮箱很重要,GitHub是靠邮箱和用户名关联的,不然可能还是识别不到你)
情况2:修改单个仓库的本地配置
如果只是某个仓库的本地配置覆盖了全局,进入该仓库目录后执行:
git config user.name "你的真实GitHub用户名" git config user.email "你的GitHub绑定邮箱"
修改完后,再执行之前的检查命令,确认输出的是你的真实用户名和邮箱就ok了。
关于Android Studio的问题
Android Studio默认会读取Git的全局配置,你之前全局配置错了,所以提交时才会显示Your-Name。改完全局配置后,重启Android Studio应该就会生效。如果还是有问题,可以直接在AS里检查配置:
- 打开
File > Settings > Version Control > Git - 看看这里的用户名和邮箱是不是正确的,不对的话直接修改保存就行。
可选:修改已提交的历史记录(谨慎操作!)
如果只是想让未来的提交显示正确用户名,上面的步骤就足够了。但如果想把之前已经提交的历史里的Your-Name改成真实用户名,就需要修改Git历史。注意:
如果这个仓库已经推送到远程,并且有其他协作者一起开发,修改历史后需要强制推送,这会覆盖远程的历史记录,可能给其他人带来麻烦,一定要先和团队沟通!
修改历史的命令(在Git Bash里执行,替换掉占位符):
git filter-branch --env-filter ' OLD_NAME="Your-Name" CORRECT_NAME="你的真实GitHub用户名" CORRECT_EMAIL="你的GitHub绑定邮箱" if [ "$GIT_COMMITTER_NAME" = "$OLD_NAME" ] then export GIT_COMMITTER_NAME="$CORRECT_NAME" export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL" fi if [ "$GIT_AUTHOR_NAME" = "$OLD_NAME" ] 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,提问作者ScrapeW




