删除不在历史记录中的git提交

时间:2013-01-10 11:38:19

标签: git github

我有这样的事情:

A - B - C

我修改了C而我:

A - B - D

C在其他地方浮动,如何从本地和远程存储库中删除C?

没有指向C的指针。但是我可以在Github中读取它的哈希值。如何强制进行垃圾收集并将其推送到远程?

2 个答案:

答案 0 :(得分:1)

来自github support

  

警告强制推送不会删除遥控器上的提交   repo,它只是引入了新的并将分支指针移动到   指向他们。如果您担心用户访问该错误   通过SHA1直接提交,你必须删除repo和   重新创造它。

感谢。

答案 1 :(得分:0)

在得到具体答案之前,你需要更具体地了解你真正做了什么,什么ref(head,“指针”)指向提交等等。

一般情况下,如果没有refs指向你的旧提交C,那么它将被及时垃圾收集。

如果你有ref指向C并且你希望C消失,你需要删除那些引用。当然,您需要了解这样做的潜在影响 - 即其他提交可能会消失。