如何从GitHub中删除悬空提交?

如何从GitHub中删除悬空提交?,git,github,git-dangling,Git,Github,Git Dangling,昨天,我推到了。我推了一次,意识到我没有按我想要的方式进行更改,于是重拨提交并再次推 现在,GitHub有两个提交: –第一个“坏”承诺 –我想保留的那个 我的主分支仅跟踪第二次提交,但第一次提交仍然可用,并且仍在我的活动提要中。如何删除它以确保没有人意外地提取该提交而不是更正的版本?GitHub将定期垃圾收集从顶级引用(如标记、分支或reflog)无法访问的任何提交(和其他对象)。这意味着随着时间的推移(比如下个月),这个物体将消失 拉取应该生成一个只包含被引用对象的包,这样任何人都不会因

昨天,我推到了。我推了一次,意识到我没有按我想要的方式进行更改,于是重拨提交并再次推

现在,GitHub有两个提交:

  • –第一个“坏”承诺
  • –我想保留的那个

我的主分支仅跟踪第二次提交,但第一次提交仍然可用,并且仍在我的活动提要中。如何删除它以确保没有人意外地提取该提交而不是更正的版本?

GitHub将定期垃圾收集从顶级引用(如标记、分支或reflog)无法访问的任何提交(和其他对象)。这意味着随着时间的推移(比如下个月),这个物体将消失

拉取应该生成一个只包含被引用对象的包,这样任何人都不会因为克隆或拉取而得到提交。比如说,

$ 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

如果确实需要立即删除它,您可能需要联系。

GitHub将定期垃圾收集从顶级引用(如标记、分支或reflog)无法访问的任何提交(和其他对象)。这意味着随着时间的推移(比如下个月),这个物体将消失

拉取应该生成一个只包含被引用对象的包,这样任何人都不会因为克隆或拉取而得到提交。比如说,

$ 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

如果您确实需要立即删除,您可能需要联系。

删除回购协议或联系GitHub

如果你能承受失去所有问题的代价,那么删除回购协议并在没有错误提交的情况下重新创建它似乎是可行的。数据也会从提交API中消失(尽管推送事件仍然可见)。另见:

如果您无法承受问题数据的丢失,GitHub支持可以手动删除悬空提交。例如,当我问他们要我把它取下来,我照做了,他们做了一个
gc
。包含数据的拉取请求:由于这一原因,回购数据在初始取下后一年内保持可访问性

他们目前:

通过联系GitHub支持人员,您可以永久删除存储库的所有缓存视图,并在GitHub上提取请求


我不确定,也许将回购协议私有化也会让问题继续存在,并摆脱承诺。不过,你肯定会输。不确定恢复后提交是否会消失。但至少你可以保留问题的私人备份。

删除回购协议或联系GitHub

如果你能承受失去所有问题的代价,那么删除回购协议并在没有错误提交的情况下重新创建它似乎是可行的。数据也会从提交API中消失(尽管推送事件仍然可见)。另见:

如果您无法承受问题数据的丢失,GitHub支持可以手动删除悬空提交。例如,当我问他们要我把它取下来,我照做了,他们做了一个
gc
。包含数据的拉取请求:由于这一原因,回购数据在初始取下后一年内保持可访问性

他们目前:

通过联系GitHub支持人员,您可以永久删除存储库的所有缓存视图,并在GitHub上提取请求


我不确定,也许将回购协议私有化也会让问题继续存在,并摆脱承诺。不过,你肯定会输。不确定恢复后提交是否会消失。但至少您可以保留问题的私有备份。

四年后,OP的两个提交仍然可以在Github上使用。您说Github将定期垃圾收集未引用的提交是基于什么?我以前听说过,但找不到比这更可信的答案了。@Quantum7,Atlassian有一篇关于何时运行gc的文章。据我所知,任何git回购都会在推送过程中进行自我检查,如果事情“太大”,gc就会运行。第二,仅供参考,我运行了git gc,我的悬空提交没有被删除。你需要联系GitHub支持(as)来删除不再引用的缓存提交。在我的情况下,我联系了GitHub,他们回复说他们“在我们这端清除缓存并运行垃圾收集”我能够确认提交不再可访问。四年后,OP的两个提交仍然可以在Github上使用。你说Github将定期垃圾收集未引用的提交是基于什么?我以前听说过,但找不到比这更可信的答案了。@Quantum7,Atlassian有一篇关于何时运行gc的文章。据我所知,任何git回购都会在推送过程中进行自我检查,如果事情“太大”,gc就会运行。第二,仅供参考,我运行了git gc,我的悬空提交没有被删除。你需要联系GitHub支持(as)来删除不再引用的缓存提交。在我的情况下,我联系了GitHub,他们回复说他们“在我们这端清除缓存并运行垃圾收集”我能够确认这些承诺已经无法访问。8年后,承诺仍然存在-接受的答案显然是错误的8年后,承诺仍然存在-接受的答案显然是错误的。。