当使用git fetch
从一个(非常大的)存储库获取引用到本地计算机上的另一个存储库git upload-pack
时,创建包文件需要很长时间。在本地情况下,不需要最小化传输的数据量,而且我不关心因丢失增量压缩而丢失的磁盘空间,所以理想情况下,我更喜欢复制丢失的对象而不是打包然后进口的。有没有办法告诉git fetch
在使用本地传输时只复制丢失的对象?
或者,更一般地说,有没有办法在全局范围内抑制包文件的生成?真的,我只是想将 git 用作一个版本化的文件系统,它不会为相同的文件占用额外的空间——打包和重新打包似乎是一个耗时的步骤,这使得这很尴尬。
顺便说一句,我花了一些时间尝试优化配置选项,以便重新打包不会花费很长时间(也不会开始颠簸)所以我认为答案不是“使用这些配置选项并且打包会更快” - 但是,也许我错了,所以为了清楚起见,我通常使用的配置选项(在使用 2 GiB RAM 的情况下)是:
core.deltacachesize=1
core.packedgitwindowsize=16m
core.packedgitlimit=128m
pack.packsizelimit=512m
pack.windowmemory=200m
pack.deltacachesize=200m
pack.window=4
pack.compression=3
pack.threads=0
gc.auto=0
gc.pruneexpire=never
receive.autogc=false