git - 做 git clone 时 "Filtering content"是什么意思?

标签 git git-clone git-lfs

我克隆了一个 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 文件,该文件将过滤器与特定路径中的文件相关联。

过去,这总是在checkoutadd 操作期间逐个文件地处理。以更批量的方式处理 checkout 的所有“污迹”过滤器会更有效,并且 git 最近添加了对此的支持。

(我相信) push 该添加的用例称为 LFS。使用 LFS,大内容存储在辅助存储库中,在核心存储库中用小占位符(“指​​针文件”)替换它们。 “涂抹”过滤器下载真实内容并将其放在指针文件的位置。这很可能是您的 repo 正在做的事情,而且这可能是一个漫长的过程。

不过,一般来说,“正在过滤”状态行仅表示正在对 checkout 的内容运行一批污迹过滤器。

关于git - 做 git clone 时 "Filtering content"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53321680/

相关文章:

git - 无法在 Vagrant 盒子上从 Git 克隆

git - 配置 git-lfs 以跟踪超过一定大小的文件

git - 尝试使用 git LFS 同步 zip 文件,提示我空间不足

通过http ://does not clone all tags Git克隆

java - 使用 Ubuntu 15.10 的 Maven,出现 : mvn clean install; 错误

git - 克隆一个带有子模块 : override credentials 的 repo

linux - Git需要用户名和密码进行git push,git pull使用HTTPS方式

github-api - 用于下载包含 LFS 文件的 zipball/tarball 的 Github API

git - 如何推送和自动更新我的非裸远程 git 存储库的工作副本?

git - 撤消 git 快进 merge