HOWTO · Git

Git での Rm の取り消し

このチュートリアルでは、Git コマンドを使用してコマンド git-rm-r を元に戻す方法を示します。

Git では、rm という用語は git remove コマンドのエイリアスです。したがって、リポジトリから個々のファイルまたはファイルの束を削除するために使用されます。Git の git rm の主な機能は、Git インデックスを使用して追跡されたファイルを削除することです。

ただし、git rm を使用して、作業ディレクトリとインデックスの両方からファイルを削除することもできます。同じブランチ内の現在の作業ディレクトリとそのサブディレクトリからファイルを削除します。現在の作業ディレクトリ外のファイルは削除されません。リポジトリ内のブランチを削除するために git rm コマンドは使用されないことに注意してください。

Git でファイルを削除する

Git インデックスから個々のファイルを削除するには、次のコマンドを使用します。

$ git rm <file>

同様に、Git から多数のファイルを削除するには、次のコマンドを使用します。

$ git rm <file> <file> <file> ...

また、作業ディレクトリからファイルを削除する場合は、次のコマンドを使用します。

$ git rm --cached <file>

git rm --cached はファイルを作業ディレクトリから削除しますが、Git インデックスからは削除しません。

ただし、この記事では、このコマンドを誤って適用した場合の対処方法について説明します。次に、このコマンドを元に戻します。下記の方法は、変更を元に戻す簡単な方法です。Git にはそれを回復するためのたくさんのコマンドがあります。次の部分で最も使用するものをカバーする方が良いと思います。

Git checkout コマンドを使用して rm コマンドを元に戻する

まず、コマンド git reset を実行して、ステージング領域を行った変更に戻します。

git reset

git reset を適用した後、git checkout を実行して、同じリポジトリ内の最後のチェックインから削除されたファイルまたはフォルダーを復元します。

git checkout <file-name>

ステージング領域を元に戻して削除されたファイルをチェックアウトしたくない場合は、次のように目的の目標を達成するためにヘッドに言及することで、簡単に 1つのステップで実行できます。

git checkout HEAD <file-name>

Git reset コマンドを使用して rm コマンドを元に戻す

重要なコミットされていない変更がない場合は、--hard オプションを指定して git reset を実行します。これにより、ブランチ内の最新のコミットにすべてがリセットされます。

git reset --hard HEAD

コミットされていない変更があるが、最初の git コマンドが機能しない場合は、コミットされていない変更を git stash で保存します。

git stash
git reset --hard HEAD
git stash pop