GitHub源代码视图显示不再存在的提交

GitHub源代码视图显示不再存在的提交,git,github,rewrite,commit,Git,Github,Rewrite,Commit,两周前,我重写了GitHub存储库的历史(rebase和一些cherry Pick),并通过 git push -f origin master 一切都进行得很顺利,至少看起来是这样的,git log显示了正确的提交历史记录。我知道,重写历史是不好的做法,但是存储库是新的,我是唯一的用户,所以应该不会给其他人带来任何麻烦 我的存储库只有一个分支,名为master 现在来谈谈我的问题。GitHub的my repository源代码视图显示了至少一个提交,由于我重写了历史记录,该提交不应再存在。事

两周前,我重写了GitHub存储库的历史(rebase和一些cherry Pick),并通过

git push -f origin master
一切都进行得很顺利,至少看起来是这样的,
git log
显示了正确的提交历史记录。我知道,重写历史是不好的做法,但是存储库是新的,我是唯一的用户,所以应该不会给其他人带来任何麻烦

我的存储库只有一个分支,名为
master

现在来谈谈我的问题。GitHub的my repository源代码视图显示了至少一个提交,由于我重写了历史记录,该提交不应再存在。事实上,它既不存在于我的本地日志中,也不存在于GitHub的提交日志中(但它是我的本地reflog的一部分)。我如何摆脱此提交以及远程GitHub存储库中可能存在的其他提交?有没有办法清理远程存储库并删除那些不属于提交日志一部分的“无法访问”提交

顺便说一句,如果我克隆GitHub存储库,克隆中就不存在rogue提交
git show
返回
fatal:bad object

我的问题与之非常相似,但“等待GitHub的垃圾收集”问题的解决方案显然不起作用。提交链接在6个月后仍然有效

删除存储库并重新创建它应该可以解决问题,但这并不是很优雅


提前谢谢

提交不会因为重写历史而从存储库中无声地消失,它们只是不再被引用

推送到存储库意味着上传一个对象列表,然后将一些标记和/或分支设置为一些提交。这并不意味着从目标存储库中删除分支现在不使用的任何提交(和其他对象)

当您通过克隆进行检查时,无法再访问提交。理论上,它最终应该被垃圾收集,但正如你所观察到的,这可能不会很快发生——也许永远不会。(是否有人从您链接的另一个问题中提到的提交中分岔,这会妨碍垃圾收集?)


如果“错误”提交中有任何机密数据,请联系github支持人员将其删除。如果没有,只需忽略提交-它坐在存储库中没有什么坏处。

这听起来更像是Github支持的问题,而不是堆栈溢出。。。我们从外部对此无能为力,看起来他们的系统中有一个明显的缺陷=/我有没有办法再次强制推送我的本地存储库
git-push-f origin master
自然会说我已经是最新的。是的,试试
git-push origin+master
。返回已经是最新的。
git-push-f origin master
git-push origin+master
之间有什么区别。有没有?我已经在我的Github repo上重写了几次历史记录,提交仍然存在于web界面中,但从任何地方都无法访问。我同意,除非它们包含重要的东西,否则就随它们去吧。谢谢你的解释。我不确定问题中的存储库是否已被分叉。我的印象是,强制推送将删除远程存储库中不需要的所有内容。但事实并非如此。提交未被垃圾收集的另一个原因可能是GitHub的新闻提要记录了所有操作/提交。