当“工作树不稀疏”时,git 给出“禁用或修改稀疏规则”的提示

问题描述 投票:0回答:1

我很少使用稀疏结账(更有可能使用浅克隆)。我几乎总是使用

.gitignore
文件。该文件有时会配置为忽略已经属于存储库的目录或文件,因此本地环境的秘密或更改不会被察觉
git status

如果我需要更新一个这样被忽略的模板文件,那么我以为我一直使用

git add --force
,但现在会产生:

以下路径和/或路径规范与存在的路径相匹配 在稀疏结账定义之外,所以不会 已在索引中更新

接下来是提示:

如果您打算更新此类条目,请尝试以下操作之一:

  • 使用--sparse选项。
  • 禁用或修改稀疏规则。

使用“git config suggest.updateSparsePath false”禁用此消息

我尝试注释掉部分内容,然后注释掉整个

.gitignore
。就这样,我再次尝试了
git add --force
,也尝试了
git add --sparse

我尝试调查

git-sparse-checkout
细节,但当
git sparse-checkout list
说:

时就停止了

致命:这个工作树并不稀疏

这是来自 git 2.44,但我非常习惯 git 1.8。

git gitignore sparse-checkout
1个回答
0
投票

TL;DR;

git sparse-checkout disable


由于网上搜索失败,我又回去查看

git-sparse-checkout
的手册。我使用永恒的 bash 历史配置,所以我知道我不太可能在这台机器上使用过任何带有“稀疏”内容的命令。尽管如此,我还是决定(在备份后)尝试一下
git sparse-checkout disable
。令人惊讶的是,尽管“这棵工作树并不稀疏”,但它却说:

警告:以下路径已经存在,因此尽管模式稀疏,但并未更新:

然后列出了几个文件,包括我试图更改的文件。之后,常规的

git add
就开始处理该文件了。

之后,即使再次启用

.gitignore
,对这些文件的修改也会显示在
git status
中(而在运行
git sparse-checkout disable
之前则不然)。我认为这意味着我过去必须专门为他们配置一些东西。与
sparse-checkout
相关的东西,因为 git 提示建议了它,并且我能够从中禁用该配置,但没有专门作为它的子命令来完成(并且不是从另一个带有
--sparse
标志的命令来完成),因为“稀疏”不在我的命令历史记录中(有些情况下 bash 历史记录没有被写入,所以我想这并没有完全排除)。

© www.soinside.com 2019 - 2024. All rights reserved.