Git add 取り消し - コミット前に「git add」を取り消すには?

nothing to commit, working tree clean / git

誤って、Gitにファイルを追加するコマンドを使ってしまいました。

git add myfile.txt

Braiam



Answer #1

このファイルは確かにリポジトリに残っていますが、「ルースオブジェクト」としてのみ存在しています。ファイルは確かにリポジトリに残っていますが、あくまでも「ルースオブジェクト」としてです。他のリポジトリ(cloneやpush経由)にコピーされることはありませんし、スペースはいずれ再利用されるでしょう。不安になったら、実行してみましょう。

git gc --prune=now
$ git init
$ echo "version 1" > file.txt
$ git add file.txt   #file.txtの最初の追加
$ git commit -m 'first commit'
$ echo "version 2" > file.txt
$ git add  file.txt   #file.txtのステージ(コミットしない)「バージョン2」
$ git diff --cached file.txt
-version 1
+version 2
$ echo "version 3" > file.txt
$ git diff  file.txt
-version 2
+version 3
$ git add  file.txt    #おっと、これを意味していませんでした
$ git reset HEAD file.txt  #元に戻す?
$ git diff --cached file.txt  #もちろん、違いはありません。ステージ== HEAD
$ git diff file.txt   #「バージョン2」を取り返しのつかないほど失いました
-version 1
+version 3