git addしたファイルを取り消しする方法!
間違えてgit addしてしまった場合の取り消し方法(git addしたファイルをgit addする前の状態に戻す方法)を解説します。
また、その取り消しする方法が効かない場合や、特定ファイルのみの git add を取り消す方法も解説します。
git addしたファイルを取り消したい
不要なファイルまで git add
してステージング状態にしてしまい、一旦 git add
前の状態に戻したい場合に、git add を取り消す方法を解説します。
なお、 すでにadd
されているファイル等は以下のコマンドで確認できます。
add取り消し前の確認
git status #現状のgitの状態を確認。実行すると以下のような表示が出る
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: src/index.html #add済みのファイル
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: src/scss/index.scss #addされていない変更されたファイル
git addしたファイルを取り消しする方法
前回のcommit以降のgit addを取り消し(よく使う方法)
まず最初に、開発中間違って git add
してしまった場合(かつ、まだ commit
はしていない場合)は以下のコマンドを実行することで git add
を取り消せます。
ただし厳密にはaddを取り消しているわけではなく、インデックスの状態をHEADの位置(通常は直前のcommit
地点)に戻しているため、commit
せず何度もgit add
をしていた場合はそれら全ての git add
が取り消されますので注意してください。
git add の取り消し
git reset HEAD
上記を実行することで、git add
されているが commit
されていないファイルがステージング前の状態になり、インデックスは前回の commit
地点に戻ります。
前回のcommit以降のgit addを特定ファイルのみ取り消し
全てのgit add
されたファイルではなく、特定のファイルのみ add
を取り消したい場合には以下のようにファイルをパスで指定します。
特定ファイルのgit add の取り消し
git reset HEAD ファイルのパス
# 例:pagesフォルダ内のsample.htmlというファイルの変更のみ add を取り消す
git reset HEAD pages/sample.html
最初のgit addの取り消し
git init
直後の git add
を取り消したい場合には、直前の commit
地点がないので上記方法は使えません。その場合は以下のように git rm
コマンドに --cached
オプションをつけることで、指定したファイルをインデックスから削除します。
なお、この --cached
オプションがないとファイルが削除されてしまうので注意しましょう。
( -r
オプションはディレクトリを削除する際に使用するオプションなので、ファイルを指定する際にはなくて構いません。)
最初のgit addの取り消し
# git add されたファイル全てを取り消す
git rm --cached -r .
# 特定のファイルを指定して取り消す
git rm --cached -r ファイルのパス
まとめ
いかがでしたでしょうか。本記事では git add
の取り消しについて解説しました。
なお、ファイルの差分を確認する方法( git diff
)については以下の記事で解説しています。