.git文件夹非常大,后来才实现
我面临着一个我过去从未遇到过的非常奇怪的问题 我将大量图像、PDF和其他文档移动到我的项目git存储库中,存储库大小增加到290MB 后来意识到并将所有这些东西移动到AmazonS3服务器,并从repo中删除它们,因为我不需要保留这些版本 现在我的代码库大小已减少到8MB。我通过做新的提交来继续我的代码库工作 我最近想把它们移到新服务器上。我现在意识到,当我新克隆时,我的存储库的大小超过230MB 克隆后,如果我检查.git文件夹,它的大小是200 MB 这清楚地表明,我很久以前就删除了这些图片,并致力于回购协议,但它仍然存在于历史中 我怎样才能解决这个问题 问题是如何从git存储库中永久删除我们不需要的东西。 在我的例子中,我已经在删除那些二进制内容后对代码库做了很多更改,但这些内容仍然存在于历史中 也许是我做的.git文件夹非常大,后来才实现,git,github,version-control,Git,Github,Version Control,我面临着一个我过去从未遇到过的非常奇怪的问题 我将大量图像、PDF和其他文档移动到我的项目git存储库中,存储库大小增加到290MB 后来意识到并将所有这些东西移动到AmazonS3服务器,并从repo中删除它们,因为我不需要保留这些版本 现在我的代码库大小已减少到8MB。我通过做新的提交来继续我的代码库工作 我最近想把它们移到新服务器上。我现在意识到,当我新克隆时,我的存储库的大小超过230MB 克隆后,如果我检查.git文件夹,它的大小是200 MB 这清楚地表明,我很久以前就删除了这些图片
git rm *.something &&
git rm --cached filenames
但我只是手动将它们从repo中删除,然后执行git提交并推送到远程存储库,这是一个错误。我该如何解决这个奇怪的问题呢
有没有办法可以减小.git文件夹的大小
请建议,
提前感谢使用:
git gc --aggressive
要清理回购中的旧文件,请使用:
git gc --aggressive
清理您的repo中的旧文件。这对我很有用
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拉合并,并进行推操作,以减少回购规模
参考资料:-
SO公告
帮助我获得这个链接,问题的标题在一开始误导了我,所以我发布了解决方案,因为这个场景没有什么具体的内容,可能会帮助其他面临同样问题的人 这对我有用
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拉合并,并进行推操作,以减少回购规模
参考资料:-
SO公告
帮助我获得这个链接,问题的标题在一开始误导了我,所以我发布了解决方案,因为这个场景没有什么具体的内容,可能会帮助其他面临同样问题的人 可能重复@reto,但我的问题是大小。gitfolder@reto我现在怎么才能把它们去掉呢?还有。所有帐户的速度都要快得多,而且在v1.9.0及更高版本的筛选分支文档中实际上推荐使用该方法。每个人都必须重新绘制回购协议,以获得新的历史记录,并在其基础上重新调整所有工作,最终进行修剪,但这是唯一真正的缺点。@aravind.udayashankara这是你的问题。删除文件不会将其从回购历史记录中删除。否则,如何签出引用了已删除文件的以前提交?正如链接的答案所解释的,您需要从存储库的整个历史记录中删除这些文件。可能重复@reto,但我的问题是大小。gitfolder@reto我现在怎么才能把它们去掉呢?还有。所有帐户的速度都要快得多,而且在v1.9.0及更高版本的筛选分支文档中实际上推荐使用该方法。每个人都必须重新绘制回购协议,以获得新的历史记录,并在其基础上重新调整所有工作,最终进行修剪,但这是唯一真正的缺点。@aravind.udayashankara这是你的问题。删除文件不会将其从回购历史记录中删除。否则,如何签出引用了已删除文件的以前提交?您需要从存储库的整个历史记录中删除文件,如链接的答案所述。这只是清理本地缓存不会从repo中删除文件这只是清理本地缓存不会从repo中删除文件