GitHub显示错误Contributors的解决方法

2026-11-09
#MacOS #Blog

1. 前言

GitHub 仓库修改 Git 提交历史后,即使已经纠正作者信息并强制推送,Contributors 页面仍可能显示旧的贡献者。

这通常与 GitHub 的贡献者统计缓存有关。

经实践,通过临时切换默认分支,可以尝试触发 Contributors 重新统计,从而清除错误的贡献者记录。

2. 步骤

2.1 确认 Git 提交历史

进入本地 Git 仓库,检查作者和提交者:

git log --all --format='%an <%ae> | %cn <%ce>' | sort -u

确保错误的用户名及邮箱已经从需要保留的提交历史中清除。如果尚未修正,应先处理提交历史。

2.2 创建临时分支

确保本地 main 与远程同步,然后执行:

git fetch origin
git branch temp-main main
git push origin temp-main

2.3 切换 GitHub 默认分支

进入 GitHub 仓库:

Settings → Branches → Default branch

依次操作:

  1. 将默认分支由 main 改为 temp-main
  2. 保存后,再将默认分支由 temp-main 改回 main
  3. 确认默认分支最终为 main

此操作可能触发 GitHub 重新计算贡献者统计。

2.4 删除临时分支

确认默认分支恢复为 main 后,执行:

git push origin --delete temp-main
git branch -d temp-main

2.5 验证结果

打开仓库的 Contributors 页面:

https://github.com/OWNER/REPOSITORY/graphs/contributors

也可以通过 GitHub API 检查:

curl -s https://api.github.com/repos/OWNER/REPOSITORY/contributors \
  | grep '"login"'

将 OWNER 和 REPOSITORY 替换为实际仓库信息。

如果旧贡献者消失,说明统计已经成功刷新。

3. 注意事项

  • 此方法仅用于尝试刷新贡献者统计,不能替代 Git 历史修正
  • GitHub 不保证切换默认分支一定触发重新统计
  • 操作前确保没有未同步的提交,并注意分支保护及 GitHub Pages 配置
  • 若仍显示错误贡献者,可等待统计缓存更新,或联系 GitHub Support

4. 总结

核心方法:

创建临时分支 → 切换默认分支 → 切回 main → 删除临时分支

对于已经修正 Git 历史、但 GitHub Contributors 仍显示旧账号的问题,这是一个值得尝试的简便方法,无需再次重写提交历史。