Git – “fatal: not removing recursively without -r”というエラー

リモートリポジトリに不要なディレクトリがあったのだが削除できず下記のようなエラーが表示された。

fatal: not removing 'files/smple' recursively without -r

これはディレクトリ内にサブディレクトリが存在しているためフルパスで記述するか-rオプションを指定する必要があるという意味です。

この削除するときに注意したいのがリモートリポジトリのみなのかローカル/リモートリポジトリ両方削除するのかでオプションの記述が異なるので注意が必要。

削除方法

リモートリポジトリのみの削除

もしリモートリポジトリのディレクトリを削除したい場合は下記のように実行すればよい。

git rm --cached -r files/smple

--cachedを指定することでリモートリポジトリのみのディレクトリを削除します。ローカル(作業環境)のディレクトリは削除しません。

逆にこの--cachedオプションがないとローカルの作業ディレクトリも削除してしまうので注意が必要。

もしディレクトリ内のサブディレクトリごと削除したい場合は上記のようなエラーが表示されるので-rオプションを追加する必要があります。

リモート/ローカルリポジトリともに削除する

両方のリポジトリから削除したい場合–cachedオプションは不要で下記のように記述します。

git rm -r files/smple

反映させるためにpsuhする

最後に内容を反映させるためにpush作業を忘れずに。