我目前正在使用一些分散的 git repos,纯粹是为了与 rsync 相比加快文件同步速度。速度提升非常显著,例如,当 100GB 文件夹中大部分文件的总更改量为 1GB 时,rsync 需要从源上读取超过 100GB 的大部分内容才能进行同步,而 git push 只需 1GB 即可。
缺点是这会保留历史记录,因此占用比必要更多的空间。
我该如何截断历史记录以仅保留所需的内容?也就是说,repo 的所有副本之间都需要有一个共同的根提交,但是一旦有了新的共同根,就应该删除旧的共同根。
也许可以使用浅克隆并动态调整这些克隆的深度,跟踪当前存储库同步到的位置?也许可以结合这让去中心化部分变得更容易吗?