git rm无法找到.sass-cache文件夹

时间:2018-07-23 00:32:06

标签: git caching sass

我正在尝试从git中删除.sass-cache文件夹中的所有内容。 /app/assets/stylesheets/.sass-cache是文件夹的完整路径。我相信git rm -r --cached folder是用于从git中删除文件夹内容的命令,但是当我cd进入app/assets/stylesheets并运行以下命令时:

git rm -r --cached .sass-cache

我收到以下错误:

  

致命:pathspec'.sass-cache'与任何文件都不匹配

所以我认为“。”一开始是让它寻找文件。我至少在正确的轨道上吗?

1 个答案:

答案 0 :(得分:0)

好像您的索引中没有文件(又称登台区域,又称缓存)。当文件不在中时,该文件将不在您提交的 next 中,git rm --cached无法将其从索引/暂存中删除-area /缓存(不在其中)。请注意,git commit总是根据索引中当前的内容进行 new 次提交,因此索引通常包含您刚刚从某些提交中检出的每个文件的副本。

但是,

Git会针对您的工作树中存在但未包含在索引中的文件进行抱怨,说该文件是未跟踪的。 (请注意,这些文件通常在当前提交中也是 not 1 。)要让Git特别声明 not 抱怨此类文件,您可以列出它们(按路径名或模式)在.gitignore文件中。在这种情况下,请添加:

app/assets/stylesheets/.sass-cache/*

或者只是:

app/assets/stylesheets/.sass-cache/

到顶级.gitignore文件,并在必要时创建该文件,足以告诉Git停止抱怨此类文件(并自动禁止将它们自动添加到索引中使用“添加所有文件”操作。


1 运行git checkout branch会将命名分支上 tip commit 中包含的所有文件提取到索引和工作树中。因此,现在在索引的工作树中的文件必须存在,因为它在提交中。在运行git checkout branch之前,文件必须已经存在于工作树中,但在索引中为 not

如果您git checkout branch然后成功运行git rm --cached file,则该一般规则将失败。在这种特殊情况下,提示提交中名为 file ,而索引和工作树中均为 。然后,将其从索引中删除,并将其保留在工作树中。您进行的下一次提交省略,但该文件仍在当前提交中,并且git status将显示 file 将由下一个提交删除(的确如此:它在当前提交中,不会在下一个提交中,因此当前提交和下一个提交之间的区别将包括删除文件 file )。