この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:4
ページ更新者:atom
更新日時:2026-05-13 03:57:08

タイトル: git rm [-r --cached] の取り消し
SEOタイトル: git rm [-r --cached] の取り消し方法

この記事の要点
  • Git の git rm --cached(インデックスからのみ削除)を取り消す方法
  • 基本: git reset HEAD (ディレクトリは -r 不要、そのまま指定)
  • Git 2.23 以降の推奨: git restore --staged
  • すでにコミット済みなら git revert HEAD または git reset --soft HEAD~1 でコミット単位で巻き戻す

 

本稿ではgitの「git rm [-r --cached]」コマンドの取り消し方を説明します。

git rm --cached はファイル本体を残したままインデックス(ステージング領域)から削除するコマンドで、.gitignore 追加後にすでに追跡されているファイルを除外したいときによく使われます。誤って実行した場合や、コミット前に取り消したい場合の手順です。

取り消しコマンド

ファイル単位で取り消すには次のコマンドを実行します。

$ git reset HEAD [ファイル名]

-r 付きでディレクトリを削除した場合は、ディレクトリを指定すれば配下のファイルがまとめて戻ります。

$ git reset HEAD [ディレクトリ名]

Git 2.23 以降では git restore を使う書き方もできます。

$ git restore --staged [ファイル名]

取り消しが反映されたか確認

取り消し後、対象ファイルがインデックスに戻ったかを git status で確認します。

$ git status

「Changes not staged for commit」に対象ファイルが表示されていれば、インデックスからの削除が取り消されています。

注意点

  • git reset HEAD はあくまで「直前のステージング操作を取り消す」コマンドで、作業ツリーのファイル本体には影響しません
  • すでに git rm --cached をコミットしてしまった場合は、コミット自体を取り消す必要があります(git revert HEAD または git reset --soft HEAD~1
  • 新しい Git ではコマンド名が分かれ、ステージングからの取り消しは git restore --staged が推奨されています

関連コマンド

コマンド動作
git rm --cached [ファイル]インデックスから削除(ファイル本体は残る)
git rm -r --cached [ディレクトリ]ディレクトリを再帰的にインデックスから削除
git reset HEAD [ファイル]上記の取り消し
git restore --staged [ファイル]Git 2.23 以降の同等コマンド
git status結果確認