Git 永久删除提交
我知道这个问题有成千上万条线索 但我发现了一些很奇怪的事情 如果在GitHub上创建项目,请执行一些提交。Git 永久删除提交,git,github,git-rebase,Git,Github,Git Rebase,我知道这个问题有成千上万条线索 但我发现了一些很奇怪的事情 如果在GitHub上创建项目,请执行一些提交。 假设提交1、2、3、4、5。 后来,您意识到您想要将某些内容更改为commit 3 因为你在自己的分支机构工作,重写历史没有问题 让我们这样做:(基于stackoverflow答案) 太好了!错误被纠正了。 历史记录已被重写,因此提交bbc643cd现在是lkqjfhchc 您可以在GitHub上检查源代码,所有内容都已更新 但是有人仍然可以在GitHub上找到它 访问URL:。。。(完整
假设提交1、2、3、4、5。
后来,您意识到您想要将某些内容更改为commit 3 因为你在自己的分支机构工作,重写历史没有问题 让我们这样做:(基于stackoverflow答案) 太好了!错误被纠正了。 历史记录已被重写,因此提交
bbc643cd
现在是lkqjfhchc
您可以在GitHub上检查源代码,所有内容都已更新 但是有人仍然可以在GitHub上找到它强> 访问URL:。。。(完整提交哈希)您将找到它 我们如何才能永久删除此承诺
谢谢你的帮助 根据您的补充意见: 你做了一切应该做的事。
要点是:git永远不会丢失数据,除非你告诉它(被称为
gc
-garbadge收集器)
文件将保留在那里,直到调用它们为止
这称为悬挂文件
悬而未决的承诺
一种提交,它既不直接链接到任何分支或标记,也不通过其任何提升项链接到任何分支或标记
您可以通过以下命令在本地查看所有悬空引用:
git fsck --full
摆脱它的唯一方法是运行gc
//
// !!!Caution:
// It will remove all your dangling files
git gc --aggressive --prune now
您可以阅读更多信息。我从这里联系了Github的工作人员: 以下是答案(我对此无能为力,没有修剪,没有gc,等等) 嘿,马克西姆 提交可用,因为提交不会自动删除 当它们从分支的历史记录中删除时,它们将被删除 当它们被垃圾收集时。我只是为此做了垃圾收集 手动提交存储库,提交现在应该返回404 希望这有帮助 干杯,XXXXX
所以你只需等待或联系工作人员强制垃圾收集器,以防你有同样的问题 您确定原始提交也不是任何其他分支的一部分吗?不。我只是向master提交了一次以启动回购。然后我创建了一个“dev”分支。这只是在dev中。如果这有帮助的话,我注意到这不是因为我转到了提交的url,而是因为我在提交中引用了一个问题(关键字“closes”后跟问题id)。现在在这个问题上,我有一些文字说明提交有一个引用,还有另一个类似的消息,带有新的提交散列。如果我点击旧的散列,我可以看到整个提交。只要它没有被任何分支或标记的历史引用,它可能会在一段时间内消失,下次github可能会对您的repo执行
git gc
,并/或清除他们的一些缓存。哦,好吧,在一个问题评论中提到SHA可以很好地算作参考。是的,为了清理remote也可以:git push origin--force--all或类似的东西?github会偶尔自动清理它。根据他们的文档,应该不会超过90天。所以OP必须等待一段时间,才能在github上看到他的commit Dispear,如果他不这样做的话well@codeWizard谢谢你的回答!当我运行git fsck--full
时,它会检查对象-->100%:91/91 done。但我没有任何悬念…为了删除“原始”引用,您必须在远程github存储库(您没有访问权限)上运行它,所以只需等待并偶尔检查一下。
//
// !!!Caution:
// It will remove all your dangling files
git gc --aggressive --prune now