最近,我使用git rebase -i --root master
清理了git repo。我压缩了一些提交,编辑了一些提交,相应地设置了时间,最后我使用了git push --force-with-lease origin master
将本地状态推送到远程。
这工作得很好,现在我的存储库也被清除了,如here所示,但是以某种方式我能够找到一个旧的提交哈希,当通过url明确搜索它时,我仍然能够查看不再使用here。
所以我的问题是,是否以及如何从远程存储库中删除这些旧的提交/树?
有什么想法吗?
如果要手动删除它们,则可以使用pick和drop命令。
pick commithash删除提交
例如:git rebase -i --root管理员选择2d224bc6cec9b33ae9b910dbef5efdd707625383下降2d224bc6cec9b33ae9b910dbef5efdd707625383
“删除”提交实际上并没有删除:它停留了一段时间。除非您已经将哈希ID保存在某个地方,否则您将无法再[[find)。
您保存了哈希ID3597386eaa550367e5531e4ec019f04e1d7e40df
。更准确地说,您保存的GitHub URL包含哈希ID,然后将其提供给GitHub,以便他们可以在自己的侧面使用哈希ID,并且仍然可以找到提交(仍在此处)。它将继续存在,直到不存在。确切地说,何时很难做到:Git有一个维护命令,可以清理未使用的提交。在自己的存储库副本中,可以按自己的时间表运行此维护命令。在GitHub上的复制中,您受
their
维护计划的支配。((如果真的很重要,您可以要求GitHub的人们进行早期清理。但是,您可以通过这种方式处理的大多数事情(例如,删除暴露了密码的提交)都太晚了。 “到实际完成时为止,因此几乎没有任何理由为此烦恼。)