Git - 删除对象/大.git目录

时间:2015-12-13 22:49:26

标签: git

我是git的新手。我有一个现有的代码库,有几百个php文件和一个目录,上传文件中有数千个上传的文件和图像。

当我创建我的git repo并将我的代码库推送到远程服务器时,我错误地忘记将uploads /目录放入.gitignore并且因为:(

首先,我已将该目录添加到我的.gitignore

其次,我已经通过运行" git rm --cached filename"删除了该目录。对于uploads /目录中的所有文件。

然而,似乎所有这些图像仍然由git存储,因为我的.git文件夹超过1GB,每当我克隆我的repo时,它会计算数万个"对象" - 只有在包含uploads /目录的情况下,我才能相信这一点。

我尝试了以下(从http://stevelorek.com/how-to-shrink-a-git-repository.html)到无效:

$ git reflog expire --expire=now --all
$ git gc --prune=now
$ git gc --aggressive --prune=now

任何解决方案都没有引用我的代码库并从头开始!?

谢谢!

1 个答案:

答案 0 :(得分:0)

目前,垃圾收集还不够,您必须修改历史记录。 看看bfg-repo-cleaner哪个更容易,但并非没有风险,也没有后果。你对此有所了解(这方面已经有了一些答案)。