git reset head - Как отменить "git add" перед коммитом?

git undo changes / git

Я ошибочно добавил файлы в Git с помощью команды:

git add myfile.txt

Braiam



Answer #1

Беспокоиться не о чем;файл действительно все еще находится в репозитории,но только как "свободный объект".Он не будет скопирован в другие репозитории (через клон,push),и место в конечном итоге будет восстановлено-хотя,возможно,не очень скоро.Если вы беспокоитесь,то можете бежать:

git gc --prune = сейчас
$ 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   # Стадия (не фиксировать) "версия 2" файла file.txt
$ 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  # Конечно, без разницы. stage == ГОЛОВА
$ git diff file.txt   # Мы безвозвратно потеряли "версию 2"
-version 1
+version 3