我是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
任何解决方案都没有引用我的代码库并从头开始!?
谢谢!
答案 0 :(得分:0)
目前,垃圾收集还不够,您必须修改历史记录。 看看bfg-repo-cleaner哪个更容易,但并非没有风险,也没有后果。你对此有所了解(这方面已经有了一些答案)。