【问题标题】:Git rm can't find .sass-cache folderGit rm 找不到 .sass-cache 文件夹
【发布时间】:2018-12-30 09:43:14
【问题描述】:

我正在尝试从 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' 没有匹配任何文件

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

【问题讨论】:

  • 这只是表示索引中不存在路径app/assets/stylesheets/.sass-cache(既不是包含文件的目录,也不是文件)。您可以使用 git ls-files --staged 查看整个索引内容(将进入下一次提交的所有文件),但请注意,这会在大存储库中打印很多内容。
  • @torek 但是当我打开 git gui 时,有成千上万的 app/assets/stylesheets/.sass-cache 文件,这不意味着它在索引中吗?
  • 如果git rm --cached 说他们不在索引中,那么他们肯定不在索引中。也许 Git-GUI 正在向您显示 work-tree 中的文件。根据定义,工作树中但不在索引中的任何文件都是未跟踪文件,Git 通常会抱怨它们,除非您通过列出这些文件来告诉它停止抱怨(例如,通过.gitignore 文件中的路径名模式)。请注意,.gitignore 仅对 未跟踪 文件有效:不能忽略索引中的文件。
  • 顺便说一句,如果你真的输入 app/assets/stylesheets/.sass-cache 但 Git 说 .sass-cache 没有前面的 app/assets/stylesheets/ 部分,这很奇怪。您确定这些名称之间没有意外的空格或类似的空格吗?
  • @torek 我的错,那是来自样式表文件夹的错误消息。

标签: git caching sass


【解决方案1】:

看起来您的索引中已经没有文件(又名暂存区,又名缓存)。当一个文件不在在索引中时,它不会在你所做的 next 提交中,并且git rm --cached 不能将它从索引/暂存区域中删除/ 缓存(它不在)。请注意,git commit 总是从索引中当前的任何内容进行 new 提交 - 因此索引通常包含您刚刚从某个提交中签出的每个文件的副本。

然而,Git 会抱怨你的 work-tree 中存在但不在你的索引中的文件,说这些文件是未跟踪的时间>。 (请注意,这些文件通常也 not 在您当前的提交中。1)为了让 Git 特别抱怨这些文件,您可以列出它们——通过路径名或模式——在.gitignore 文件中。在这种情况下,添加:

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

或者只是:

app/assets/stylesheets/.sass-cache/

到您的顶级 .gitignore 文件,如有必要,创建该文件就足以告诉 Git 停止抱怨此类文件(如果您使用“添加所有文件”操作)。


1运行git checkout <em>branch</em> 会将指定分支上提示提交 中包含的所有文件提取到您的索引和工作树中。因此,现在在工作树 中的索引中的文件必须存在,因为它在提交中。现在在工作树中但在索引中不在中的文件必须在您运行 git checkout <em>branch</em> 之前就已经存在。

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

【讨论】:

    猜你喜欢
    • 2012-09-06
    • 1970-01-01
    • 2020-01-10
    • 2023-03-09
    • 2012-03-20
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2019-08-14
    相关资源
    最近更新 更多