Git のステージングエリアから変更を削除する
このチュートリアルは、Git のステージング領域から変更を削除することについてです。
場合によっては、ファイルを削除したり、ステージング領域からファイルの変更を削除したりすることがあります。これは、git restore
コマンドを使用して実現できます。
git restore
コマンドを使用して、Git のステージング領域から変更を削除する
ファイルへの変更が終了したとき、または Git リポジトリで追跡されているプロジェクトディレクトリに新しいファイルを追加したいときは、それらをリポジトリに追加します。
git add
コマンドを使用して、ファイルまたはファイルの変更を Git のリポジトリのステージング領域またはインデックスに追加します。次に、git commit
コマンドを使用してコミットを作成し、変更を Git リポジトリにコミットできます。
場合によっては、変更をコミットする前に、ステージング領域に追加された新しい変更が無効になっていることがあります。これらの変更をコミットするのではなく、ステージング領域からそれらの変更を削除したいと思います。
たとえば、Git リポジトリのプロジェクトディレクトリに README.md
という名前のファイルがあります。これで、ファイル README.md
にいくつかの変更が加えられました。
次のように、git status
コマンドを実行して、リポジトリのステータスを確認できます。
$ git status .
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: README.md
上記のように、git status
コマンドは、ファイル README.md
が変更されていることを示しています。
これで、README.md
ファイルの変更をステージング領域に追加できます。これは、次のように git add
コマンドを使用して行うことができます。
$ git add .
次のようにして、リポジトリのステータスを再度確認できます。
$ git status .
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: README.md
これで、ファイル README.md
の変更がステージング領域またはインデックスにあることがわかります。これで、ファイルのステータスは Changes to be committed
になります。
これで、--staged
オプションを指定した git restore
コマンドを使用して、変更のステージングを解除する(つまり、ステージング領域から変更を削除する)ことを決定できます。この情報は、上記の git status
コマンドに表示されます。
したがって、次のように git restore
コマンドを実行します。
$ git restore --staged README.md
これで、次のように git status
コマンドを再度実行できます。
$ git status .
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: README.md
上記のように、ファイル README.md
の変更はステージング領域(つまり)に存在しなくなりました。変更はコミットのためにステージングされません。
このようにして、Git のステージング領域から変更を削除する方法を学びました。
詳細については、これらのリンクをご覧ください。