0

我有一个包含大量二进制垃圾的 GitLab 存储库(很遗憾,清理不是一种选择)。我只需要一个实际上只有文本文件的子目录。我需要获取该文件夹 AFAP。

现在我发现git archive并认为我所有的问题都解决了。不过,它似乎不接受哈希参考。有没有办法检索版本/子目录的特定组合git archive

4

1 回答 1

0

我认为这个用例必须非常有限。您正在寻找一些文件的快照,没有历史背景或写回更改的能力。好吧,好吧……

当您archive--remote您一起使用时,几乎必须从参考中拉出。 如果您可以将标签推送到远程,您可以标记您想要的版本,然后您应该能够从该标签中提取。如果你不能这样做——如果你想要的版本没有标签或者是当前分支的负责人——那么你可能不走运。

即便是这样,文档也很草率。归根结底,您可以随心所欲地决定服务器是否会在这里为您提供帮助。git 模型并没有真正为子存储库级别的远程访问提供太多支持。

您可能会使用一些部分解决方案,具体取决于此 repo 膨胀的组织方式:

您可以使用浅层和/或单分支克隆。您仍然必须至少为您想要的版本提取完整的 TREE,但您可以最小化(或可能消除)历史记录和不相关版本的文件的提取。

即使您无法清理原始存储库,但如果您要经常阅读此子树的版本,则可能值得使用filter-branchwithsubdirectory-filter来创建仅包含子树历史记录的存储库;然后从原始仓库中的“下一个”提交中删除子树,将其替换为对新仓库的子模块引用。(但如果只是一次拉动,这显然不值得麻烦。)

于 2017-06-01T14:54:12.237 回答