![](https://takechi-web.com/wp-content/uploads/2023/11/2023321no03.png)
ファイルをgit addでステージングしたけど、間違えたから取り消したいな。
git addを取り消してファイルをステージングエリアからワークツリーに戻したいときがあると思います。
今回は、git addの取り消しをコマンドで行う方法を解説します。
なお、ステージングではなくコミットを取り消したいという方は、下の記事をご覧ください。
git add(ステージング)を取り消す
今回触れるのは、git add(ステージング)を取り消し、ファイルをステージングエリアからワークツリー(作業ディレクトリ)に戻す方法です。
![](https://takechi-web.com/wp-content/uploads/2023/11/af7e224a97dc16cc24fc18f0f226b12b-1-800x420.jpg)
この際、状況的に2つがあると思います。
- 特定のファイルのみステージングを取り消したい
- 全てのファイルを取り消したい
それぞれの状況でコマンドが違うので、それぞれ解説します。
特定のファイルのみgit add(ステージング)を取り消すコマンド
特定のファイルを指定してgit add(ステージング)を取り消すには、git rm --cachedコマンドを使います。
- git rm --cached [ファイル名]
- 指定したファイルをアンステージ(ステージングの取り消し)する
例えば、今下記7つのファイルがステージング(git add)されているとします(緑文字がステージングされているファイル)。
![](https://takechi-web.com/wp-content/uploads/2023/11/231106-2.jpg)
この中からreset.cssのみアンステージ(ステージングの取り消し)したい場合は、下記コマンドを入力すればOKです。
$ git rm --cached reset.css
実行後git statusコマンドで確認すると、reset.cssのみステージングエリアから外れたことがわかります。
![](https://takechi-web.com/wp-content/uploads/2023/11/231106-3-800x325.jpg)
ファイルは複数指定することも可能です。
例えば「index.html」と「main.js」2つのファイルをアンステージしたい場合は、下のコマンドを入力します。
$ git rm --cached index.html main.js
再度git statusを見ると、「index.html」と「main.js」のステージングが取り消されました。
![](https://takechi-web.com/wp-content/uploads/2023/11/231106-4-800x325.jpg)
全てのステージング(git add)を取り消すコマンド
git addしたステージングを全て取り消すには、git resetコマンドを使います。
- git reset
- ファイルを全てアンステージ(ステージングの取り消し)する
では、すべてのステージングを取り消してみましょう。
$ git reset
もう一度git statuで確認してみましょう。
すべてのファイルのステージングが取り消されましたね。
![](https://takechi-web.com/wp-content/uploads/2023/11/231106-5-800x269.jpg)
まとめ
git add(ステージング)を取り消す方法を解説しました。
今回のポイントは、次の2つです。
- ファイル名を指定して取り消したい → git rm --cachedコマンド
- 全てを取り消したい → git resetコマンド
比較的よく使うコマンドなので、この機会に覚えておきましょう。