git rm で “fatal: pathspec ‘path/to/~’ did not match any files” が発生 ⇒ git commit -a

Git

特定ディレクトリ内で前方一致削除 git rm -rf prefix_* を実行。

# git rm -rf path/to/images/prefix_*
rm 'path/to/images/prefix_a.png'
rm 'path/to/images/prefix_b.png'
rm 'path/to/images/prefix_c.png'
rm 'path/to/images/prefix_d.png'
rm 'path/to/images/prefix_e.png'
rm 'path/to/images/prefix_f.png'
rm 'path/to/images/prefix_g.png'

git status で状況確認。

# git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	deleted:    path/to/images/prefix_a.png
#	deleted:    path/to/images/prefix_b.png
#	deleted:    path/to/images/prefix_c.png
#	deleted:    path/to/images/prefix_d.png
#	deleted:    path/to/images/prefix_e.png
#	deleted:    path/to/images/prefix_f.png
#	deleted:    path/to/images/prefix_g.png
#
# Changed but not updated:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	deleted:    path/to/images/prefix_ x.jpg
#

なぜか path/to/images/prefix_ x.jpg だけがインデックスに追加されない。

# git rm -rf path/to/images/prefix_ x.jpg
fatal: pathspec 'path/to/images/prefix_' did not match any files
    git rm pathspec did not match

直で add/rm してもダメだ。

こういうときは git commit -a です。

# git commit -a

git commit -a は変更のあったファイルを自動検出してコミットできるのです。

このあたりのことが分からない方は 入門git - Travis Swivegood で勉強しましょう。

参考になるかも

入門git - Travis Swivegood

Git