jny*_*len 25 git github git-dangling
昨天,我在GitHub上推送了ConnectBot的分支.我推了一次,意识到我没有按照我想要的方式进行更改,重新提交并再次推送.
现在,GitHub都提交了两个提交:
我的主分支只跟踪第二次提交,但第一次提交仍然可用,仍然在我的活动源中.如何删除它以确保没有人意外地提取该提交而不是更正的版本?
Emi*_*Sit 15
GitHub将定期垃圾收集从顶级引用(例如标记或分支或reflog)无法访问的任何提交(和其他对象).这意味着随着时间的推移(比如下个月),这个对象就会消失.
Pull应该生成一个包,其中只包含被引用的对象,因此没有人应该通过克隆或拉取来获得该提交.例如,
$ git clone git://github.com/nylen/connectbot.git
Cloning into connectbot...
remote: Counting objects: 6261, done.
remote: Compressing objects: 100% (1900/1900), done.
remote: Total 6261 (delta 3739), reused 5980 (delta 3520)
Receiving objects: 100% (6261/6261), 3.04 MiB | 3.40 MiB/s, done.
Resolving deltas: 100% (3739/3739), done.
$ git cat-file -t 1cd775d
fatal: Not a valid object name 1cd775d
Run Code Online (Sandbox Code Playgroud)
如果您真的需要立即删除它,您可能需要联系GitHub支持.
删除仓库或联系GitHub
如果您可以承受丢失所有问题的压力,则删除仓库并在没有错误提交的情况下重新创建它似乎是可行的。数据也从提交API中消失(尽管推送事件仍然可见)。另请参阅:https : //stackoverflow.com/a/32840254/895245
如果您无法承受丢失问题数据的损失,则GitHub支持可以手动删除悬空的提交。例如,当我将所有GitHub提交电子邮件上载到一个回购库时,他们要求我将其删除,所以我做到了,然后他们做了一个gc
。但是,必须删除包含数据的提取请求:因此,回购数据在首次删除后长达一年仍可访问。
他们当前的帮助页面显示:
您可以通过联系GitHub支持永久删除存储库的所有缓存视图,并在GitHub上拉取请求。