小编典典

无法删除真正存在的文件 - 致命:pathspec ...不匹配任何文件

all

无法删除真正存在的文件 - 致命:pathspec …不匹配任何文件

我有一个在 git 控制下的文件,根本不会被删除。失败的命令是:

$ git rm .idea/workspace.xml
fatal: pathspec '.idea/workspace.xml' did not match any files

下面我列出了目录内容、分支等。到目前为止,我已经从目录中尝试了 rm,并转义以防万一有有趣的字符,我真的很难过。我搜索了网络和 SO,但找不到具体的。

$ git branch -a
* dot-output
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/modelspace
$

$ git status
# On branch dot-output
# Untracked files:
# ...

$ ls .idea/
ant.xml         encodings.xml       modules.xml     workspace.xml
compiler.xml        inspectionProfiles  scopes
copyright       libraries       testrunner.xml
dictionaries        misc.xml        vcs.xml

$ ls -al
total 56
drwxr-xr-x  16 matt  staff    544 Apr 10 11:33 .
drwxr-xr-x@ 33 matt  staff   1122 Apr 10 09:40 ..
-rw-r--r--@  1 matt  staff  12292 Apr 10 11:19 .DS_Store
drwxr-xr-x  18 matt  staff    612 Apr 10 11:39 .git
-rw-r--r--   1 matt  staff     98 Mar  6 13:40 .gitignore
drwxr-xr-x  16 matt  staff    544 Apr 10 11:34 .idea
-rw-r--r--   1 matt  staff   1113 Feb 25 11:07 README
...

$ head -n 2 .idea/workspace.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">

$ git rm .idea/workspace.xml
fatal: pathspec '.idea/workspace.xml' did not match any files

更新

@Nevik 和 @Boris 的回答很有帮助。我意识到我对正在发生的许多事情感到困惑,其中一些被 IntelliJ
IDEA(我通常喜欢的工具,顺便说一句)加剧了。首先,来自的“致命:pathspec”消息既无用git rm又具有误导性。

其次,我有该文件.gitignore,但在问我的问题之前已将其删除。但是,它也独立于 git 包含在 IDEA 的 Ignored Files
功能中,并在项目查看器中显示(而不是未跟踪,如 git status 所示)。最后,我在试验时运行了 IDEA,看起来它在我的rm.

我的收获是,如果我对 Git 行为感到困惑,请确保在调试时退出 IDEA 并仅在命令行(和 gitk)中工作。


阅读 142

收藏
2022-08-15

共1个答案

小编典典

您的文件.idea/workspace.xml不受 git 版本控制。您尚未添加它(检查 git status/Untracked 文件)或忽略它(使用
.gitignore 或 .git/info/exclude 文件)

您可以使用以下 git 命令验证它,该命令列出了所有被忽略的文件:

git ls-files --others -i --exclude-standard
2022-08-15