2017-06-01 83 views
0

我有一个GitLab存储库有很多二进制垃圾(清理是可悲的不是一个选项)。我只需要一个实际上只有文本文件的子目录。我需要获得该文件夹AFAP。获取最小路径

现在我发现git archive并认为我所有的问题都解决了。 它似乎虽然它不接受散列参考。是否有任何方法检索git archive版本/子目录的特定组合?

+0

你是什么意思*“不接受哈希引用”*? 'git归档一些提交 - 路径/到/文件夹“应该工作 – poke

+0

不根据文档。见https://git-scm.com/docs/git-upload-archive – abergmeier

+0

'git upload-archive'!== ['git archive'](https://git-scm.com/docs/git-archive )明确提及'git档案[012][ ...]'作为它的用法。 – poke

回答

0

我认为这个用例必须相当有限;您正在考虑获取某些文件的快照,而没有历史背景或写回更改的能力。好吧,好的...

当你使用archive--remote你几乎不得不从拉。 如果您可以将标签推送到远程,您可以标记您想要的版本,然后您应该能够从该标签中提取标签。如果你不能这样做 - 如果你想要的版本没有碰到标签或者是当前分支的头部 - 那么你很可能不太好运。

该文件是非常wishy-washy即使这样;当它归结为它时,您是否想要在这里帮助您解决服务器问题。 git模型实际上并不支持子库中的远程访问。

你可以玩,这取决于该回购的膨胀究竟怎么组织的一些部分的解决方案:

你可以用浅和/或单支克隆玩。你至少需要为完整的TREE版本提供你想要的版本,但是你可以最小化(或者消除)拖拽历史记录和不相关版本的文件。

即使您无法清理原始回购,如果您要频繁阅读此子树的版本,可能值得使用filter-branchsubdirectory-filter创建一个只有子树历史的回购;然后从原始仓库中的“下一个”提交中删除该子仓库,并将其替换为新仓库的子模块引用。 (但是,如果只是一次拉,这显然不值得这样做。)