我一直在寻找滑动历史窗口问题的解决方案。问题如下: 我有一个DNS存储库,有许多提交,但我只想在名称服务器上存在一定数量的提交。没有必要在现场机器上有完整的提交历史,所以为什么要在那里进行。我创建了一个深度为5的浅层克隆(提交A B C D E)。我需要更新DNS,并且有一些提交感知了初始克隆(提交F G H)。更新过程完成后,我希望克隆只有5个先前的提交(D E F G H)。即使在获取/合并或拉取之后,克隆仍然需要具有提取/合并或拉出其他提交的能力。
我知道通过分支和变基,你可以实现像Converting git repository to shallow?这样的东西。但是,我无法使它与上游存储库兼容,以便将来合并。根据我的理解,它使得一个forked分支与实际分支不能合并为“已发布”版本,因此,它不能用于任何将来的提交。给出的备用解决方案也不起作用,因为它会导致修剪错误。
此问题是浅克隆维护脚本的最后一个组件。该脚本的基本功能将取消任何本地更改,清除所有未被忽略的未跟踪文件,然后测试是否已对repo进行更新(通过提取)。如果上游仓库有更新,那么它将应用(通过拉动)它们并像在初始示例中一样“向前移动”提交窗口。
我错过了什么?甚至可以在不必删除现有克隆并重新克隆的情况下使用吗?