我从本地机器丢失了一些代码,并且我认为我有github存储库中的对象,问题是,它们是悬挂对象,我不知道如何获取它们,有没有办法获取它们?我可以从远程存储库获取所有git对象吗?
下面是这一切是如何发生的(包括我在它的愚蠢):
我有一个包含一些巨大的SQL数据的存储库(回购大约300M),因为该仓库大小制作git clone
慢我去提前和deleted the huge files。
git filter-branch 'git rm ...'
之后我修复了依赖于已删除数据的测试,并编写了一些代码,我将这些更改和git push --force origin
提交到github中。
当我试图用这个“新”存储库重新绑定时,它只是感觉到它的表面。 git filter-branch 'git rm ...'
改变了第一次提交,所以一切都变成了冲突。
因为我不能重新定义我决定尝试一些不同的东西,我从我的本地机器中删除了存储库,并从旧的存储库中删除了我的备份到github中。
这就是我失去了一些工作。
我认为的对象仍然在github上,因为他们对如何删除敏感数据的文章说:
本文告诉您如何使在您的GitHub的任何分支或标签不可达的敏感数据提交库。 但是,需要注意的是,那些提交可能仍然可以通过在GitHub的缓存视图中的SHA-1哈希以及通过引用它们的任何请求请求,直接在您的存储库的任何克隆或分支中访问。您无法对存储库中的现有克隆或叉形式进行任何操作,但可以联系支持以永久移除所有存储库的缓存视图,并通过违规提交来拉取请求。
这是一个私人回购,github中只有一个克隆(我用'git push --force'做了一个备份覆盖)。我的同事没有一个人从“修剪过的”存储库中取出或拉出,因为我们有太多的重组冲突(一切)。所以,基本上github确实删除了悬挂的对象,我没有运气? –
由于你做了一个强制推送,你覆盖了github上的相应分支。它应该具有相同的状态。随意通过将您的remote-repo克隆到不同的目录来检查。除此之外,我猜GitHub会频繁进行垃圾回收以节省空间。这就是为什么我认为你的本地回购可能会有更多的运气。 – florianb