Git提交未显示在GitHub贡献图,邮箱配置异常求助
GitHub贡献图未显示提交的解决方法
问题背景
- 小型项目此前提交均正常,上周五的5次提交未出现在GitHub贡献图中
- 查看提交的
.patch详情发现,提交使用的邮箱为manudequevedo@gmail.comm(正确应为manudequevedo@gmail.com),无法定位错误邮箱来源 - 项目通过GH Pages发布,仓库地址:
https://github.com/ManudeQuevedo/FEM-newsletter-signup
已尝试的无效操作
- 执行
git config --global user.name,姓名显示正确 - 执行
git config --global user.mail(注:该命令拼写错误,正确应为user.email),邮箱显示正确 - 在当前仓库执行不带
--global参数的git config命令 - 确认GitHub设置中的邮箱与注册邮箱一致,重新配置全局
user.name和user.email,移除并重新添加GitHub邮箱
正确解决步骤
1. 排查并修正Git配置
首先检查当前仓库的本地配置(全局配置可能被仓库本地配置覆盖):
# 列出当前仓库的所有本地配置 git config --local --list
如果发现user.email为错误的manudequevedo@gmail.comm,执行以下命令修正:
git config --local user.email "manudequevedo@gmail.com"
同时用正确命令确认全局配置:
git config --global user.email
确保输出为正确邮箱。
2. 批量修正历史提交的错误邮箱
已存在的提交使用了错误邮箱,需要改写历史提交信息:
在项目根目录执行以下脚本(替换对应的旧邮箱、新邮箱和你的GitHub用户名):
git filter-branch --env-filter ' OLD_EMAIL="manudequevedo@gmail.comm" CORRECT_EMAIL="manudequevedo@gmail.com" CORRECT_NAME="你的GitHub用户名" if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ] then export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL" export GIT_COMMITTER_NAME="$CORRECT_NAME" fi if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ] then export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL" export GIT_AUTHOR_NAME="$CORRECT_NAME" fi ' --tag-name-filter cat -- --branches --tags
执行完成后,强制推送到远程仓库(注意:此操作会覆盖远程仓库历史,若有协作开发者需提前沟通):
git push --force --all git push --force --tags
3. 验证结果
- 再次查看提交的
.patch文件,确认邮箱已更正 - 等待1-2小时后,检查GitHub贡献图是否显示这些提交
4. 预防后续错误
- 确保全局和仓库本地的
user.email均配置正确,避免拼写错误(比如多打一个m) - 可在GitHub设置中启用noreply邮箱,绑定到Git配置,避免邮箱拼写问题影响贡献统计
内容的提问来源于stack exchange,提问作者Manu de Quevedo
相关产品推荐
相关产品推荐

