Git のステージングエリアから変更を削除する

Azhar Bashir Khan 2022年8月23日
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 のステージング領域から変更を削除する方法を学びました。

詳細については、これらのリンクをご覧ください。

  1. git restore
  2. ステージングされたローカル変更を元に戻す

関連記事 - Git Restore