使用GitHub Desktop操作GitLab,提交记录不显示头像且名称未关联个人主页?
解决GitHub Desktop连接GitLab后提交记录不显示头像、提交者未关联个人主页的问题
这个问题本质是本地Git配置的用户名/邮箱和你GitLab账号里的验证信息不匹配——GitLab只会识别和账号绑定且已验证的邮箱,才能关联到你的个人主页、显示对应头像(头像来自与该邮箱绑定的Gravatar)。下面一步步来解决:
第一步:确认你GitLab账号的正确信息
先打开你的GitLab个人主页,进入「Settings」(设置)→「Emails」,找到你已经验证过的邮箱地址;同时记住你的GitLab用户名(就是主页URL里的标识,比如https://gitlab.com/your_username里的your_username)。
第二步:检查本地Git的配置
打开GitHub Desktop,点击顶部菜单栏的「Repository」→「Open in Terminal」(或者直接打开终端,进入你的仓库目录),输入以下命令查看当前仓库的Git配置:
git config user.name git config user.email
如果输出的用户名/邮箱和你GitLab账号里的不一致,就需要修改。
第三步:修改Git配置(全局或仓库级)
方式一:全局配置(所有仓库生效)
在终端输入:
git config --global user.name "你的GitLab用户名" git config --global user.email "你GitLab已验证的邮箱"
方式二:单个仓库配置(仅当前仓库生效)
如果只想让这个仓库用GitLab的信息,进入仓库目录后输入:
git config user.name "你的GitLab用户名" git config user.email "你GitLab已验证的邮箱"
第四步:处理已经提交的历史记录(可选)
如果之前的提交已经推送到GitLab,想要修正它们的提交者信息,需要用以下命令(注意:这会改写历史,如果你和团队协作,一定要先和队友沟通确认):
git filter-branch --env-filter ' OLD_EMAIL="你之前用的错误邮箱" CORRECT_NAME="你的GitLab用户名" CORRECT_EMAIL="你GitLab已验证的邮箱" 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
执行完后,强制推送到GitLab:
git push --force --tags origin 'refs/heads/*'
第五步:验证效果
修改配置后,提交一个新的测试commit并推送到GitLab,刷新页面就能看到提交记录显示你的头像,点击提交者名称也会跳转到你的GitLab个人主页了。
内容的提问来源于stack exchange,提问作者user5405648




