【发布时间】: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 我的错,那是来自样式表文件夹的错误消息。