我克隆了一个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
答案 0 :(得分:4)
在git
中,您可以定义“过滤器”,以影响将文件从索引移动到工作树(“涂抹”过滤器)和从文件树到索引(“干净”过滤器)的过程。通常,您会找到一个.gitattribute文件,该文件将过滤器与特定路径下的文件相关联。
过去通常是在checkout
或add
操作期间逐个文件地处理此操作。以更分批的方式处理所有“结帐”过滤器以进行结帐会更加有效,而git相对较新地增加了对此的支持。
(我认为)推动这种增加的用例称为LFS。使用LFS,大量内容存储在辅助存储库中,而较小的占位符(“指针文件”)将其替换到核心存储库中。 “涂抹”过滤器下载实际内容,并将其放在指针文件的位置。这很可能是您的仓库正在做的事情,并且可能是一个漫长的过程。
不过,通常来说,“过滤”状态行仅表示在已签出的内容上运行了一批污迹过滤器。
答案 1 :(得分:0)
回购使用的是Git LFS,它是git扩展,用于与git存储库一起对大型文件进行版本控制。
https://git-lfs.github.com/ https://github.com/git-lfs/git-lfs/