.git文件夹后来实现了很大

时间:2014-06-11 13:47:26

标签: git github version-control

我正面临着一个我过去从未面对过的非常奇怪的问题。

我将大量图片和pdf以及其他文档移到我的项目git存储库中,存储库大小增加到290 MB

后来意识到并将所有这些东西移动到亚马逊s3服务器并将其从repo中删除,因为我不需要保留那些版本。

现在我的代码库大小减少到8 MB。我通过做新的提交继续我的代码库工作。

我最近想将它们移到新服务器上。我现在意识到,当我新建克隆时,我的存储库大小超过230 MB。

克隆后如果我检查.git文件夹,其大小为200 MB。

这清楚地表明,我删除了这些图像,并将其保留给了回购,但它仍然存在于历史中。

我该如何解决这个问题。

问题是如何从git存储库中永久删除我们不需要的东西。 在我的情况下,我已经在删除这些二进制内容后对代码库进行了很多更改,但是历史记录中仍然存在这些内容。

可能是我可能已经完成了

git rm *.something && 
git rm --cached filenames

但我只是手动将它们从repo中删除并做了一个git commit并推送到远程存储库,这是一个大错,我怎么能解决这个奇怪的问题?

有没有办法减少我的.git文件夹的大小

请建议,

提前致谢

2 个答案:

答案 0 :(得分:4)

这对我有用

git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch folder/" HEAD 

清理我的本地仓库缓存

rm -rf .git/refs/original/ && git reflog expire --all &&  git gc --aggressive --prune

完成后,您的本地分支将会分歧。如果你运行git status,它会显示你是从原点开始的。

所以只需从远程进行git pull合并并进行推送,以便减少repo大小。

参考文献: -

Clear historical files/folders from git repository

SO发布

Completely remove files from Git repo and remote on GitHub

协助我得到这个链接,问题的标题在开头误导了我所以我发布了解决方案,因为这个场景很少具体,可能会帮助其他面临同样问题的人。

答案 1 :(得分:1)

使用:

git gc --aggressive

清理回购邮件中的旧文件。