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



我是git新手。我有一个现有的代码库,里面有几百个php文件,还有一个目录,里面有成千上万个上传的文件&上传/中的图像。

当我创建我的git repo并将我的代码库推送到远程服务器时,我错误地忘记了将上传/目录放在.gitignore中,并且从那时起就遇到了麻烦:(

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

其次,我通过对uploads/目录中的所有文件运行"git-rm-cached-filename",将该目录从跟踪中删除。

然而,所有这些图像似乎仍然是由git存储的,因为我的.git文件夹超过1GB,每当我克隆我的repo时,它都会计数数以万计的"对象"——我认为这只有在包括上传/目录的情况下才有可能。

我尝试了以下(来自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

除了取消我的代码库并从头开始之外,还有什么解决方案吗!?

谢谢!

此时,垃圾收集还不够,您将不得不修改历史记录。看看bfg回购清洁剂,它让事情变得更容易,但并非没有风险也没有后果。你最好读一点这方面的内容(也已经有了一些答案)。

最新更新