首页 > 解决方案 > git怎么能压缩文件这么多?

问题描述

我有一个带有大量 DLL 的旧 .NET 项目(并且没有像 NuGet 这样的包管理器)。

文件的总大小约为 1.5 Go

当我用这个项目初始化一个 git 存储库时,.git 的总大小 < 300 Mo,git 压缩二进制文件的可能性怎么可能超过最好的 zip 工具呢?

更新:在挖掘@mvp 评论后,我发现这个项目中的一些 dll 重复了多达 20 次。

$ find . -name '*.dll' -exec basename {} \; > dlls
$ cat dlls | sort | uniq -c | sort -nr | awk '{ print $2, $1 }'

等待一些关于 git 如何识别“重复”并管理它们的答案。

标签: .netgit

解决方案


由于没有人想在这里写下他们的答案:

git 为每个文件创建一个散列,并且只将所有具有相同散列的文件存储一次,无论是来自不同修订版的具有相同散列的文件,还是来自不同目录中相同修订版的具有相同散列的文件。


推荐阅读