推送至私有仓库特定分支后GitHub贡献未记录的问题
问题分析与解决方案
没执行git checkout Mp6-The-Three-Cup-Shuffle绝对是导致你提交没出现在贡献图的关键原因之一,我来给你拆解清楚:
为什么这会影响贡献记录?
当你清空本地文件夹重新创建仓库后,Git默认会自动切换到仓库的默认分支(通常是main或master),而不是你之前工作的Mp6-The-Three-Cup-Shuffle分支。这意味着你之后做的所有提交、推送操作,实际上都是在默认分支上进行的——哪怕你以为自己在目标分支工作。
虽然GitHub贡献图会统计你所有推送到远程的合法提交,但这里有两个核心问题:
- 你可能误以为自己把提交推送到了
Mp6-The-Three-Cup-Shuffle分支,但实际推送到了默认分支,只是没注意到这一点; - 就算提交本身合法,如果你一直在错误分支操作,后续想要追溯目标分支的贡献自然找不到记录。
怎么解决?
第一步:确认当前本地分支
先打开终端,执行这条命令看看你现在在哪个分支:
git branch
输出里带*标记的就是当前分支,如果不是Mp6-The-Three-Cup-Shuffle,那完全验证了我们的判断。
第二步:把提交转移到目标分支
根据你是否已经把错误分支的提交推送到远程,分两种情况处理:
情况1:还没推送到远程默认分支
# 先暂存当前未提交的修改(如果有的话) git stash # 切换到目标分支 git checkout Mp6-The-Three-Cup-Shuffle # 把默认分支上的提交逐个转移过来(<commit-hash>是你要转移的提交ID,可通过git log查看) git cherry-pick <commit-hash> # 推送到远程目标分支 git push origin Mp6-The-Three-Cup-Shuffle # (可选)回到默认分支,删除错误的提交 git checkout main git reset --hard HEAD~<提交数量>
情况2:已经推送到远程默认分支
# 切换到目标分支 git checkout Mp6-The-Three-Cup-Shuffle # 合并默认分支的所有提交到目标分支 git merge main # 推送到远程目标分支 git push origin Mp6-The-Three-Cup-Shuffle # (谨慎操作)如果需要撤销远程默认分支的提交,先和团队沟通,再执行: git checkout main git reset --hard HEAD~<提交数量> git push origin main --force
第三步:确认贡献图显示
GitHub贡献图的更新可能有延迟,最长可能需要24小时。另外,你可以去个人设置的「Contributions」板块,确认「Private contributions」选项是勾选的——私有仓库的贡献默认是会显示的,但如果不小心关掉了也会看不到。
内容的提问来源于stack exchange,提问作者Wael Azar
相关产品推荐
相关产品推荐

