Отмените "git checkout HEAD foo.c" в git scm - PullRequest
7 голосов
/ 07 февраля 2011

Я по ошибке извлек файл с моими последними изменениями в HEAD ..

git checkout HEAD foo.c

, что означает, что я потерял все свои изменения, которые я хотел зафиксировать ...

тамспособ найти эти изменения в кеше git или в какой-нибудь локальной истории?

Ответы [ 2 ]

7 голосов
/ 07 февраля 2011

, если вы не спрятали изменения в файле во время работы (а затем восстановили их), тогда вы мало что можете с этим поделать.

, если вы добавили изменения в файл, используя git add (вывероятно, потому что вы собирались сделать коммит), тогда BLOB-объект уже должен быть в базе данных git.Вы можете использовать git fsck, чтобы найти висящие объекты.поищите капли и осмотрите их все - либо с помощью git show, либо git cat-file - (на это нужно время, я знаю…), но если вам повезет, вы найдете содержимое вашего файла.используйте git cat-file blob $hash_of_object > foo.c do для восстановления содержимого вашего файла

3 голосов
/ 07 февраля 2011

Если бы вы не зафиксировали это (или спрятали или добавили в индекс), git не узнает о ваших локальных изменениях. Итак, нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...