タイトル: git rm [-r --cached] の取り消し
SEOタイトル: git rm [-r --cached] の取り消し方法
| この記事の要点 |
|---|
|
本稿では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 | 結果確認 |