Git Ready
ファイルを追跡対象から外す - git rm の使い方・オプション・サンプル

ファイルを追跡対象から外す- git rm

ファイルを作業ツリーとインデックスから削除します。

概念図

git rm diagram

構文

bash
git rm [options] <file>...

使用例

ファイルを削除

bash
git rm file.txt

インデックスからのみ削除

bash
git rm --cached file.txt

注意点

  • 削除してコミットしても過去には残る

    git rm で削除してコミットしても、過去のコミット履歴にはファイルが残ります。パスワードや秘密鍵など機密情報を誤ってコミットした場合は git rm --cached だけでは不十分です。履歴からも完全に除去するには git filter-branch や BFG Repo-Cleaner などの専用ツールが必要になります。

  • --cached で追跡だけ外す

    誤ってコミットしてしまったファイルを .gitignore に追加する際の定番パターンです。作業ディレクトリのファイルは残るので、実ファイルを消したくない場合に使います。

  • 変更があるファイルの削除

    変更がステージングされているファイルを削除しようとするとエラーになりますが、-f オプションで強制削除できます。

  • git restore との使い分け

    ファイルを「未追跡に戻す」のか「作業ディレクトリの変更を破棄する」のかで使うコマンドが変わります。詳しくは rm と restore の使い分け を参照してください。

関連コマンド