1. ホーム
  2. git

[解決済み] 本当に存在するファイルを削除できない - fatal: pathspec ... がどのファイルにもマッチしない

2022-04-22 18:54:15

質問

<ブロッククオート

本当に存在するファイルを削除できない - fatal: pathspec ... はどのファイルにもマッチしない。

git control の下に、どうしても削除できないファイルがあります。失敗したコマンドは次のとおりです。

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

以下、ディレクトリの内容、ブランチなどを列挙します。今のところ、ディレクトリ内からrmを試したり、おかしな文字がある場合に備えてエスケープしたりしましたが、本当に困っています。Webや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(ちなみに私は一般的に大好きなツールです)によって悪化させられたものでした。まず、'fatal: pathspec' メッセージが git rm は役に立たず、誤解を招く。

次に、ファイルを .gitignore しかし、質問をする前に削除していました。しかし、それはgitとは無関係にIDEAのIgnored Files機能にも含まれており、プロジェクトビューアではそのように表示されていました(git statusが示すようにuntrackedではありません)。最後に、実験している間IDEAを起動していたのですが、どうやら私の rm .

私が得た教訓は、もし混乱したGitの動作が見られるなら、デバッグ中はIDEAを終了してコマンドライン(とgitk)のみで作業するようにすることです。

解決方法は?

あなたのファイル .idea/workspace.xml は git のバージョン管理下にありません。まだ追加されていないか(git status/Untracked files をチェック)、無視しているか(.gitignore や .git/info/exclude ファイルを使っている)です。

以下のgitコマンドを使用すると、無視されたファイルをすべてリストアップして確認できます。

git ls-files --others -i --exclude-standard