我正面临着一个我过去从未面对过的非常奇怪的问题。
我将大量图片和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文件夹的大小
请建议,
提前致谢
答案 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
清理回购邮件中的旧文件。