gpt4 book ai didi

git - 获取/pull 非常大的存储库的一部分?

转载 作者:IT王子 更新时间:2023-10-29 01:04:13 24 4
gpt4 key购买 nike

这可能是显而易见的,之前已经以不同的方式被问过很多次,但我搜索了一段时间后仍未找到答案。

假设如下:

  • 例如,我在本地有一个 500GB 的磁盘;
  • 我有一个 100 TB 的远程存储库;因此,克隆整个存储库的成本根本不可行;
  • 用于创建远程存储库的工作目录由 1000 个顶级目录 DIR001、DIR002 ... DIR00N 组成,每个目录包含多个子目录,文件仅位于叶子目录下(例如 DIR001/subdir1/fileA1 ... DIR001/subf1/fileAN 和 DIR001/subdir2/fileB1 ... DIR001/subdir2/fileBN, ...
  • 我没有明确标记或分支目录 DIR001、DIR002、... DIR00N 或与此相关的任何其他内容
  • 我初始化了一个全新的本地 git 存储库

我如何有效地从远程存储库中 pull 或获取最后提交的版本,例如 DIR001/subdir2/fileB1 ... DIR001/subdir2/fileBN?

只是来自远程存储库的 DIR001/subdir2/fileB1 ... DIR001/subdir2/fileBN 的单个文件的最后提交版本,没有别的吗?

我如何有效地 pull 或获取所述文件子集的先前提交版本,而不是其他任何东西?

也许 fetch/pull 不是正确的命令。

最佳答案

Partial cloning”的答案可以帮助您开始尝试浅克隆。
但它会受到限制:

  • 达到一定深度,和/或某些分支,
  • 但不是某些文件或目录(您可以通过稀疏 check out 获取文件或目录,但您仍然必须先获取完整的存储库!)
  • 甚至是某个提交。
    (Git 2.5(2015 年第 2 季度)支持单个提取提交!参见“Pull a specific commit from a remote git repository”)。

不过,真正的解决方案是将庞大的远程仓库分离成子模块。
参见 What are Git limitsGit style backup of binary files用于说明这种情况。


2015 年 4 月更新:

Git Large File Storage (LFS)将使 pull/fetch 更加高效(来自 GitHub,2015 年 4 月)。

项目是git-lfs (参见 git-lfs.github.com )并在支持它的服务器上进行了测试:lfs-test-server :
您只能将元数据存储在 git 存储库中,而将大文件存储在其他地方

https://cloud.githubusercontent.com/assets/1319791/7051226/c4570828-ddf4-11e4-87eb-8fc165e5ece4.gif

关于git - 获取/pull 非常大的存储库的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3676038/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com