归档旧提交
我想用Git来跟踪一个大的工作目录(很多演出)的微小变化(每天几个)。 数据将是混合二进制/纯文本。 二进制数据不会像文本信息那样变化很多。 很少需要访问旧提交,并且可能会很慢,而最近的历史需要很快。
我不想永久丢失旧数据,只需将其移动到备份服务器或其他东西。 Git中有什么东西允许将旧的历史记录归档并仅保留本地存储库中的某个子集?
如果没有,是否有更适合此目的的工具? 我喜欢Git,因为我知道它,我想要版本控制和差异。 我不需要Git的任何高级功能(如分支/合并,不分发),所以其他类似的VCS会很好。
如果您使用git format-patch
,那么使用git clone --depth <depth>
创建一个浅度克隆并继续。 然而,你不是,在这种情况下,你可能会找到这个答案,这个答案很有用。 第二个结论是, git checkout --orphan
可能是获得你想要的最好方式。 当然,你仍然需要在本地克隆完整的历史记录,以创建一个更小的分支。
如果你感觉冒险,想要这样做,并且愿意忍受更复杂的推送过程,使用git format-patch
创建补丁并将它们应用到另一个使用git am
存储库, git am
既不难执行也不会脚本化。 它会为您的推送过程添加一个额外的层 - 例如,在浅层回购中创建补丁,以编程方式应用到完整的回购,这是本地或其他地方,从后者推入。 时间和麻烦可能是不值得的,但它当然是可能的。
上一篇: archive old commits