タイトル: git rm [-r --cached] の取り消し
SEOタイトル: Gitのgit rm [-r --cached] の取り消し方
結論
git rm や git rm --cached を取り消したい場合は、まず インデックスから元に戻すのが基本です。
|
git reset HEAD [ファイル名] |
git rm --cached を取り消す場合
git rm --cached は、ファイルをワークツリーには残したまま、Git の管理対象から外すコマンドです。
この操作を取り消したいなら、まず git reset HEAD でステージ状態を戻します。
git rm との違い
git rm: Git 管理対象から外し、ワークツリー上のファイルも削除するgit rm --cached: Git 管理対象から外すが、ローカルファイルは残す
どちらを取り消すかで、次に必要な操作が変わります。
git rm --cached の取り消し例
|
git rm --cached sample.txt git reset HEAD sample.txt |
git rm でワークツリー上のファイルも消した場合
git rm でファイル自体も消えている場合は、インデックスだけでなく作業ツリーにも戻す必要があります。
|
git reset HEAD sample.txt git checkout -- sample.txt |
Git の新しめの書き方なら、次の形でも戻せます。
|
git restore --staged sample.txt git restore sample.txt |
ディレクトリごと取り消したい場合
-r を付けて消した場合も、同じ考え方です。対象パスに対して staged / worktree を戻します。
まとめ
git rm [-r --cached] の取り消しは、まず git reset HEAD [ファイル名] でステージを戻すのが基本です。
もしワークツリー上のファイルも消えているなら、追加で git checkout -- [ファイル名] または git restore を使ってファイル本体も戻します。