[英]Is it possible to instruct git to only write packfiles?
我有时将git存储库存储在Flash介质上,这在创建多个单个文件时比较慢,但是在写入单个大文件时相当快。 该存储库是裸存储库,因此基本上只是.git
文件夹。
每当我推送到这些存储库时,我都会注意到git复制了一个打包文件,然后将其解压缩。 我真的不希望git解包对象; 相反,我希望它可以使对象保持压缩状态。
有没有一种方法可以指示git只写packfile而不解压它们?
我不擅长git repacking,但我会尝试查看git-repack 。
该脚本用于将当前不在“包”中的所有对象组合到一个包中。 它也可以用于将现有包重新组织为一个更有效的包。
包是对象的集合,这些对象分别进行压缩并应用增量压缩,并与相关的索引文件一起存储在单个文件中。
软件包用于减少镜像系统,备份引擎,磁盘存储等上的负载。
编辑1 :也许-a
选项就是您想要的:
-一种
与其增量打包未打包的对象,不如将引用的所有内容打包到一个包中。 在打包用于私有开发的存储库时特别有用,无需担心人们通过愚蠢的协议从中获取信息。 与-d一起使用。 这将清除git prune留下的对象,但是git fsck --full显示为悬空。
编辑2 :正如我在评论中所说,这不是一个真正的答案,而是一个可能的尝试指针。
一个理想的解决方案可能是bup 。 bup的想法是直接(独立于git)编写git pack文件,以便您可以使用高效的pack文件格式进行备份,而不会因为git打包大型存储库而导致性能问题。
bup的README文件中的“在远程服务器上进行备份”示例中给出了如何在远程git存储库中创建打包文件的示例。
作为免责声明,我自己没有尝试过,因此在您的用例中使用bup可能存在一些基本问题,但对我来说似乎是个好主意。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.