如何“禁用或修改稀疏规则”?

How to `Disable or modify the sparsity rules`?

kes@work ~/t/etc $ git rm local.conf 
The following pathspecs didn't match any eligible path, but they do match index
entries outside the current sparse checkout:
local.conf
hint: Disable or modify the sparsity rules if you intend to update such entries.
hint: Disable this message with "git config advice.updateSparsePath false"

之前我做过:git update-index --skip-worktree etc/local.conf

如何Disable or modify the sparsity rules?

skip-worktree 是内部标志,用于标记提交中的路径但不是结帐的一部分。 Git 有一个便利设施,“稀疏结账”,说 git help sparse-checkout 如果你好奇,它允许你......好吧,只对你想要工作的路径进行稀疏结账并完全忽略提交中其他路径中的任何内容。这在很少遇到的情况下非常方便。

当索引条目点亮该标志时,Git 的内部实际上会跳过所有会影响或引用工作树中路径的操作,但他们会保留索引条目以提醒自己路径越界。

编写提示时假设您使用稀疏结帐工具点亮了该标志。按照您的方式自己使用标志并没有错,但是提示假定您正在做一些您尚未在文档中遇到的事情。

如果您想删除该文件和索引条目,请先使用 git update-index --no-skip-worktree etc/local.conf 取消设置 skip-worktree 标志,然后 git rm 将按预期工作。

如果您只想删除索引条目,您可以在核心命令级别直接执行此操作,git update-index --force-remove etc/local.conf,或者如上所述取消设置标志,然后 git rm --cached它。