有没有办法只保留 git repos 之间共同祖先所需的历史记录?

有没有办法只保留 git repos 之间共同祖先所需的历史记录?

我目前正在使用一些分散的 git repos,纯粹是为了与 rsync 相比加快文件同步速度。速度提升非常显著,例如,当 100GB 文件夹中大部分文件的总更改量为 1GB 时,rsync 需要从源上读取超过 100GB 的大部分内容才能进行同步,而 git push 只需 1GB 即可。

缺点是这会保留历史记录,因此占用比必要更多的空间。

我该如何截断历史记录以仅保留所需的内容?也就是说,repo 的所有副本之间都需要有一个共同的根提交,但是一旦有了新的共同根,就应该删除旧的共同根。

也许可以使用浅克隆并动态调整这些克隆的深度,跟踪当前存储库同步到的位置?也许可以结合让去中心化部分变得更容易吗?

相关内容