git - 如何维护具有截断历史的轻量级 Git 存储库
问题描述
给定一个包含数百万次提交的 repo all-history.git ,如何创建和维护开发人员在日常操作中使用的第二个轻量级 repo last-year-of-history.git ?两个 repo 都将包含开发人员最近执行的所有活动(提交/分支/标签/等),但轻量级 repo 将仅包含此活动的最后一年。
我想出了一种截断last-year-of-history.git 中的提交并删除旧标签和分支的方法,但是我用来推动开发人员从last-year-of-history.git到all-的更改的过程history.git正在推送截断的提交和破坏文件历史记录,从而使all-history.git的意图变得毫无用处。
解决方案
除非有其他原因您没有说明想要这样做,否则更好的解决方案是使用shallow clones。
开发人员(和您的 CI 流程)可以执行浅层克隆并尽可能多地拉回历史记录,然后正常处理存储库。
他们可以克隆 with
--depth 10
以仅克隆 repo 中的最后 10 个提交
或者,他们可以使用
--shallow-since=<date>
这似乎更符合您现在正在做的事情:他们可以克隆从给定日期开始的所有提交。
推荐阅读
- android - 在 Flutter 中更新当前页面后如何更改上一页的评论数?
- c# - 在 DataGrid 中绑定 ViewModel 属性,Datagrid 在 UserControl 内,而在另一个用户控件内
- node.js - @google-cloud/logging-bunyan 无法加载默认凭据仅有时
- javascript - 如何从javascript中的两个json数组中获取不匹配的对象
- html - 如何以其他组件的形式使用自定义输入组件(小部件)?
- django - 处理在任何时候引发的特定时间的错误
- powershell - 更改excel图表中条形的颜色
- c - 如何在 C 中将项目添加到二维“ArrayList”并在其中搜索项目
- javascript - 类型号在sails-mongo中最多存储10个字符
- angular - auth 方法 Angular 8 中 Observable 的错误