Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.git文件夹非常大,后来才实现_Git_Github_Version Control - Fatal编程技术网

.git文件夹非常大,后来才实现

.git文件夹非常大,后来才实现,git,github,version-control,Git,Github,Version Control,我面临着一个我过去从未遇到过的非常奇怪的问题 我将大量图像、PDF和其他文档移动到我的项目git存储库中,存储库大小增加到290MB 后来意识到并将所有这些东西移动到AmazonS3服务器,并从repo中删除它们,因为我不需要保留这些版本 现在我的代码库大小已减少到8MB。我通过做新的提交来继续我的代码库工作 我最近想把它们移到新服务器上。我现在意识到,当我新克隆时,我的存储库的大小超过230MB 克隆后,如果我检查.git文件夹,它的大小是200 MB 这清楚地表明,我很久以前就删除了这些图片

我面临着一个我过去从未遇到过的非常奇怪的问题

我将大量图像、PDF和其他文档移动到我的项目git存储库中,存储库大小增加到290MB

后来意识到并将所有这些东西移动到AmazonS3服务器,并从repo中删除它们,因为我不需要保留这些版本

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

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

克隆后,如果我检查.git文件夹,它的大小是200 MB

这清楚地表明,我很久以前就删除了这些图片,并致力于回购协议,但它仍然存在于历史中

我怎样才能解决这个问题

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

也许是我做的

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中删除文件