我有一个带有大量二进制垃圾的GitLab存储库(遗憾的是,清理不是一个选项)。我只需要一个实际上只有文本文件的子目录。我需要获取AFAP文件夹。
现在我找到git archive
,并认为我的所有问题都已解决。
但似乎它不接受哈希引用。有没有办法用git archive
检索版本/子目录的特定组合?
答案 0 :(得分:0)
我认为这个用例必须非常有限;您正在寻找获取某些文件的快照,没有历史上下文或能够回写更改。好吧,好吧......
当archive
与--remote
一起使用时,您几乎不得不从裁判中提取。 如果您可以将标签推送到遥控器,则可以标记所需的版本,然后您就可以从该标签中提取。如果你不能这样做 - 如果你想要的版本碰巧没有标签或者是当前的分支机构 - 那么你可能不幸运。
即使如此,这些文档也很糟糕。当它归结为它时,你可以随心所欲地服务器是否会帮助你。 git模型并没有真正为子库级别的远程访问提供很多支持。
您可能会使用的某些部分解决方案,具体取决于此回购组织的臃肿程度:
您可以使用浅层和/或单分支克隆。你仍然需要至少为你想要的版本提取完整的TREE,但是你能够最小化(或者可能消除)历史记录和不相关的文件版本。
即使您无法清理原始仓库,如果您经常阅读此子树的版本,也可以使用filter-branch
和subdirectory-filter
来创建只有子树的历史回购;然后从" next"中删除子树。在原始仓库中提交,将其替换为对新仓库的子模块引用。 (但如果只是一次性的拉动,这显然不值得这么麻烦。)