Pycharm或终端推送的提交未计入GitHub commit日历如何解决?
解决PyCharm推送Git提交不计入GitHub贡献日历问题
问题根源
GitHub贡献日历计数、提交头像绑定的核心规则是:提交信息中附带的邮箱地址,必须和你GitHub账号已绑定并验证的邮箱完全一致。PyCharm提交时读取的本地Git配置邮箱和GitHub不匹配,就会出现提交可见但不计入贡献、无头像的问题。
提示:如果你开启了GitHub的邮箱隐私保护,必须使用系统提供的
@users.noreply.github.com格式的匿名邮箱作为提交邮箱,否则提交不会被计数。
修复步骤
- 第一步:确认GitHub绑定邮箱
登录GitHub账号,进入右上角个人设置→Emails页面,记录你已验证的主邮箱,若开启了隐私保护则记录页面显示的noreply匿名邮箱。 - 第二步:修改本地Git配置
打开Windows终端(CMD/PowerShell),执行以下命令修改配置:- 全局生效(所有本地仓库都使用该配置)
git config --global user.name "你的GitHub用户名" git config --global user.email "你刚才记录的GitHub绑定邮箱"- 仅对当前项目仓库生效
先cd进入你的项目根目录,再执行:
git config user.name "你的GitHub用户名" git config user.email "你刚才记录的GitHub绑定邮箱" - 第三步:校验PyCharm Git配置
打开PyCharm,进入File→Settings→Version Control→Git,点击「Configure Git User」,确认弹出的邮箱和用户名和上面的配置一致,不要单独设置和GitHub不匹配的提交信息。 - 第四步:验证修复结果
本地修改任意文件后新建commit推送至GitHub,刷新仓库commits页面即可看到头像正常显示,新提交也会计入贡献日历。
可选:补录之前未计数的历史提交
如果需要把之前提交的记录也补到贡献日历里,可执行命令修改本地仓库的历史提交邮箱,仅适用于个人私有仓库、无其他协作人员的场景:
git filter-branch --env-filter ' OLD_EMAIL="你之前用错的旧邮箱" CORRECT_NAME="你的GitHub用户名" CORRECT_EMAIL="你的GitHub绑定邮箱" 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
修改完成后强制推送即可更新远程仓库的历史提交信息。
内容的提问来源于stack exchange,提问作者MrHola21
相关产品推荐
相关产品推荐

