我知道这个问题有数千个主题。
但我发现了一些非常奇怪的东西。
如果您在GitHub上创建项目,请执行一些提交 让我们说提交1,2,3,4,5 之后,您意识到要将某些内容更改为commit 3。
当您在自己的分支机构工作时,重写历史记录没有问题。
所以让我们这样做:(基于this stackoverflow回答)
git rebase --interactive 'bbc643cd^'
// Modify 'pick' to 'edit' into interactive prompt and :
git commit --all --amend --no-edit
git rebase --continue
git push -f
大!错误得到纠正。
历史记录已被重写,因此提交bbc643cd
现在为lkqjfhchc
您可以在GitHub上查看源代码,所有内容都已更新。
但有人仍然可以在GitHub上找到它!
访问网址:https://github.com/your-nickname/your-project/commit/bbc643cd ...(完整提交哈希),您会找到它!
我们怎样才能彻底删除此提交?
感谢您的帮助!
答案 0 :(得分:3)
我从这里联系了Github的工作人员:https://github.com/contact
这是答案(我对此无能为力,没有修剪,没有gc等)
嘿Maxime,
提交可用,因为提交不会自动删除 当他们从分支的历史中删除时 - 他们被删除了 当他们被垃圾收集。我只是为此运行垃圾收集 手动存储库,提交现在应返回404。
希望这有帮助。
干杯,XXXXX
所以你只需等待或联系工作人员强制垃圾收集器,以防你遇到同样的问题!
答案 1 :(得分:0)
根据您的其他评论:
你做了应有的一切
关键在于:git永远不会丢失数据,除非你告诉它(什么是gc
- garbadge collector)
文件将保留在那里,直到它们将被调用gc。
这称为dangling file
悬空提交
未直接或由其任何优先级链接到任何分支或标记的提交。
您可以在本地查看所有悬空参考:
git fsck --full
摆脱它的唯一方法是运行gc
//
// !!!Caution:
// It will remove all your dangling files
git gc --aggressive --prune now
Here您可以阅读更多相关信息。