我克隆了一个 git 存储库并注意到状态行 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
最佳答案
在 git
中,您可以定义影响将文件从索引移动到工作树(“smudge”过滤器)和从工作树移动到索引(“clean”)的过程的“过滤器”过滤器)。通常,您会找到一个 .gitattribute 文件,该文件将过滤器与特定路径中的文件相关联。
过去,这总是在checkout
或add
操作期间逐个文件地处理。以更批量的方式处理 checkout 的所有“污迹”过滤器会更有效,并且 git 最近添加了对此的支持。
(我相信) push 该添加的用例称为 LFS。使用 LFS,大内容存储在辅助存储库中,在核心存储库中用小占位符(“指针文件”)替换它们。 “涂抹”过滤器下载真实内容并将其放在指针文件的位置。这很可能是您的 repo 正在做的事情,而且这可能是一个漫长的过程。
不过,一般来说,“正在过滤”状态行仅表示正在对 checkout 的内容运行一批污迹过滤器。
关于git - 做 git clone 时 "Filtering content"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53321680/