首页 > 解决方案 > 如何维护具有截断历史的轻量级 Git 存储库

问题描述

给定一个包含数百万次提交的 repo all-history.git ,如何创建和维护开发人员在日常操作中使用的第二个轻量级 repo last-year-of-history.git ?两个 repo 都将包含开发人员最近执行的所有活动(提交/分支/标签/等),但轻量级 repo 将仅包含此活动的最后一年。

我想出了一种截断last-year-of-history.git 中的提交并删除旧标签和分支的方法,但是我用来推动开发人员从last-year-of-history.gitall-的更改的过程history.git正在推送截断的提交和破坏文件历史记录,从而使all-history.git的意图变得毫无用处。

标签: git

解决方案


除非有其他原因您没有说明想要这样做,否则更好的解决方案是使用shallow clones

开发人员(和您的 CI 流程)可以执行浅层克隆并尽可能多地拉回历史记录,然后正常处理存储库。

他们可以克隆 with --depth 10以仅克隆 repo 中的最后 10 个提交

或者,他们可以使用 --shallow-since=<date>

这似乎更符合您现在正在做的事情:他们可以克隆从给定日期开始的所有提交。


推荐阅读