.net - 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 如何识别“重复”并管理它们的答案。
解决方案
由于没有人想在这里写下他们的答案:
git 为每个文件创建一个散列,并且只将所有具有相同散列的文件存储一次,无论是来自不同修订版的具有相同散列的文件,还是来自不同目录中相同修订版的具有相同散列的文件。
推荐阅读
- java - 映射缓冲区读取 int
- r - Lubridate 日期解析关闭一年
- python - 逆序数组的插入排序速度快得离谱
- python - 保护在 Python 上运行的 .exe 程序源代码的最佳方法?
- javascript - 在调整浏览器窗口大小时使浏览器窗口与元素的大小相同。或至少保持与元素相同的浏览器纵横比
- ios - 将自定义对象保存到用户默认值然后返回是一种纪念品吗?
- javascript - chrome更新后window.open功能不起作用
- javascript - 为什么日期变量不是 instanceof Date,即使构造函数是 Date
- powershell - 理解并添加到 if 语句
- python-3.x - 在 Dataframe 上应用 lambda 函数给出错误