代码之家  ›  专栏  ›  技术社区  ›  Drew Noakes

当执行git克隆时,“过滤内容”是什么意思?

  •  2
  • Drew Noakes  · 技术社区  · 6 年前

    我克隆了一个git repo并注意到一个状态行 Filtering content 非常慢。这通常不会出现。这是怎么一回事?

    remote: Enumerating objects: 30, done.
    remote: Counting objects: 100% (30/30), done.
    remote: Compressing objects: 100% (26/26), done.
    remote: Total 16592 (delta 6), reused 9 (delta 4), pack-reused 16562
    Receiving objects: 100% (16592/16592), 14.14 MiB | 1.01 MiB/s, done.
    Resolving deltas: 100% (7529/7529), done.
    Checking out files: 100% (11475/11475), done.
    Filtering content:   6% (115/1729), 390.32 MiB | 1.12 MiB/s
    
    2 回复  |  直到 6 年前
        1
  •  3
  •   Mark Adelsberger    6 年前

    git 您可以定义影响文件从索引移动到工作树(“污点”过滤器)和从工作树移动到索引(“干净”过滤器)过程的“过滤器”。通常,您会找到一个.gitattribute文件,它将过滤器与特定路径上的文件相关联。

    过去,在 checkout add 操作。以更批量的方式处理签出时的所有“污点”过滤器可能会更高效,而且Git最近也为此增加了支持。

    驱动这个添加的用例(我相信)称为LFS。使用LFS,大内容存储在二级回购中,小占位符(“指针文件”)在核心回购中替换它们。“污点”过滤器下载真正的内容并将其放在指针文件的位置。这很可能是你的回购协议所做的,而且可能是一个漫长的过程。

    不过,一般来说,“过滤”状态行只意味着在签出的内容上运行一批污点过滤器。

        2
  •  0
  •   Drew Noakes    6 年前

    repo使用的是git-lfs,它是一个git扩展,用于在git存储库旁边对大型文件进行版本控制。

    https://git-lfs.github.com/ https://github.com/git-lfs/git-lfs/