7

我想使用 Git 跟踪大型工作目录(许多演出)上的微小更改(一天几次)。数据将混合二进制/纯文本。二进制数据几乎不会像文本信息那样变化。很少需要访问旧的提交,并且可能很慢,而最近的历史需要快速。

我不想永久丢失旧数据,只需将其移动到备份服务器或其他东西。Git 中是否有一些东西允许存档旧历史并仅在本地存储库中保留某个子集?

如果没有,是否有更适合此目的的工具?我喜欢 Git,因为我知道它并且我想要版本控制和差异。我不需要 Git 的任何高级功能(比如分支/合并,不是分布式的),所以任何其他类似的 VCS 都会很好。

4

1 回答 1

4

如果您正在使用 进行修补git format-patch,则使用创建一个浅克隆git clone --depth <depth>并继续。但是,您可能不是,在这种情况下,您可能会发现这个答案这个答案很有用。第二个结论git checkout --orphan是,这可能是获得你想要的东西的最佳方式。当然,您仍然需要在本地克隆一次完整的历史记录以创建一个较小的分支。

如果您喜欢冒险,非常想要这个,并且愿意忍受更复杂的推送过程,那么创建补丁git format-patch并将它们应用到另一个存储库git am既不难执行也不难编写脚本。它会在你的推送过程中添加一个额外的层——例如,在浅存储库上创建一个补丁,以编程方式应用到一个完整的存储库,它可以是本地的,也可以是其他地方的,从后者推送。时间和麻烦可能不值得,但它肯定是可能的。

于 2012-08-13T11:37:41.183 回答