git可以在垃圾回收期间生成线性增量历史吗?
在a previous question我了解到,在垃圾收集过程中,git重新打包并存储增量,而不是gc之前的完整修订版。我利用这个优势将mysqldump存储为备份,并且免费获得历史记录和数据压缩。
现在我的问题是,现在有很多历史记录(每天一次,几个月),每次它git gc
git都会重写整个增量历史记录(更改文件系统上的所有数据) ),这使得异地同步传输所有数据。我希望我的rsyncs只需转移新的增量。
换句话说,有没有办法让git只重新包装尚未包装的东西?
答案 0 :(得分:0)
请求的功能:
...有没有办法让git只重新包装已经包装好的东西?
与git repack
完全匹配。来自the git-repack reference:
此命令用于将当前未包含在" pack"中的所有对象组合到一个包中。
在没有任何选项的情况下运行它将打包任何松散(未打包)的对象,但将它们留在磁盘上。可以使用-d
选项更改此内容:
打包后,如果新创建的包使一些现有包冗余,请删除冗余包。 同时运行git prune-packed以删除多余的松散目标文件。
或者git prune-packed
可以手动运行。