如何维护具有截断历史记录的轻量级Git回购

如何维护具有截断历史记录的轻量级Git回购,git,Git,如果一个repoall history.git包含数百万次提交,那么如何创建和维护第二个较轻的repo,开发人员在日常操作中使用它?两个回购协议都将由开发人员执行所有最近的活动(提交/分支/标记等),但较轻的回购协议将只包含该活动的最后一年 我想出了一种方法,可以在历史的最后一年截短提交。git并删除旧的标记和分支,但是我用来推动开发人员从历史的最后一年进行更改的过程。git到所有历史。git正在推动截短的提交并破坏文件历史,将所有历史记录.git的意图呈现为无用。除非有其他原因,您不想这样做,

如果一个repoall history.git包含数百万次提交,那么如何创建和维护第二个较轻的repo,开发人员在日常操作中使用它?两个回购协议都将由开发人员执行所有最近的活动(提交/分支/标记等),但较轻的回购协议将只包含该活动的最后一年


我想出了一种方法,可以在历史的最后一年截短提交。git
并删除旧的标记和分支,但是我用来推动开发人员从历史的最后一年进行更改的过程。git到所有历史。git正在推动截短的提交并破坏文件历史,将所有历史记录.git的意图呈现为无用。

除非有其他原因,您不想这样做,否则更好的解决方案是使用浅克隆

开发人员(以及您的CI流程)可以执行浅层克隆,并根据需要提取尽可能多或尽可能少的历史记录,然后正常使用存储库

他们可以用计算机克隆
--深度10
仅克隆回购中的最后10次提交

或者,他们可以使用
--浅自=


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

浅层克隆确实提供了巨大的好处,但我更进一步,发现在提交次数较少的回购中工作提供了另一个数量级的性能好处。