git add の取り消し方

gitでステージングした変更を取り消す、代表的な2つの方法について解説する。

おすすめの方法: `git restore`

Git v2.23から導入された、より安全で直感的なコマンドである。ステージングの取り消しに特化しているため、誤操作のリスクが低い。

特定のファイルを取り消す

`--staged` オプションを付けて、取り消したいファイル名を指定する。

git restore --staged <ファイル名>

ステージングした全てのファイルを取り消す

カレントディレクトリを意味する `.` を指定すると、全ての変更を一度に取り消せる。

git restore --staged .

従来の方法: `git reset`

古くから使われている多機能なコマンドである。古いバージョンのGit環境でも動作する。

特定のファイルを取り消す

取り消したいファイル名を指定する。`HEAD` は省略可能である。

git reset HEAD <ファイル名>

ステージングした全てのファイルを取り消す

ファイル名を指定しないことで、ステージングエリアの全ての変更を取り消す。

git reset

どちらを使うべきか?

基本的には、以下の基準で判断すると良い。

  • `git restore`: Gitのバージョンが2.23以降であれば、こちらを第一候補とすべきである。役割が明確で安全である。
  • `git reset`: 古いGit環境で作業する場合や、`reset` の他の機能と合わせて使う場合に便利である。
重要: どちらのコマンドも、ファイルの変更内容自体は消去しない。ステージングエリアからワーキングディレクトリに戻すだけなので、安心して実行できる。