Git: возможно ли восстановить мои локальные неустановленные изменения (которые когда-то были подготовлены) после git reset --hard?

У меня были некоторые изменения в моей локальной ветке, которые я добавил с помощью git add -A. Затем по некоторым причинам я отменил эти изменения, выполнив git reset. Затем я открыл GitExtensions и нажал Сбросить все изменения. (Я как-то предположил, что это Сбросить выбранные изменения :/)

Так что я потерял эти изменения. Можно ли восстановить эти изменения, учитывая, что они когда-то были добавлены?

Разговор здесь предполагает, что изменения могут быть восстановлены, если они когда-либо были инсценированы. Я не мог найти, как это сделать: необходимо отменить действие "Сбросить изменения" git extensions< /а>

Я нашел способы восстановления, если изменения были когда-то спрятаны: восстановить сброшенный тайник в git

Ответы здесь предполагают, что невозможно восстановить изменения, если они не зафиксированы, не размещены или не спрятаны: случайно-возвратные-к-основным-утерянные-незафиксированные-изменения


person Ajinkya    schedule 31.05.2018    source источник
comment
Я этого не знал, но кажется, что может быть возможно восстановить ваши файлы, если вы действительно их поместили. Если вы действительно никогда ничего не инсценировали и не стерли свой рабочий каталог, то вам, вероятно, не повезло. Одно исключение: если вы открыли файлы в хорошей среде IDE, такой как IntelliJ, то она (то есть среда IDE) может поддерживать свою собственную локальную историю, которую вы можете использовать для возврата.   -  person Tim Biegeleisen    schedule 31.05.2018


Ответы (1)


Да, это возможно, потому что содержимое файлов добавляется в репозиторий git при подготовке файлов. Но вы не восстановите имя файла, потому что объекты дерева создаются только при фиксации.

Для этого в Gitextensions есть функция «восстановить потерянные объекты»: https://git-extensions-documentation.readthedocs.io/en/latest/maintenance.html#recover-lost-objects

В любом случае обратите внимание, что документ не обновлен и что пункт меню был перемещен (теперь он находится в меню «репозиторий»).

Ps: И я настоятельно рекомендую вам использовать разрабатываемую версию следующей версии, которая будет выпущена, по крайней мере, для восстановления ваших файлов, потому что я улучшил эту функцию, чтобы намного упростить восстановление файлов в вашем особом случае. Вы можете скачать его здесь: https://ci.appveyor.com/project/gitextensions/gitextensions/branch/master/artifacts

Затем я открыл GitExtensions и нажал «Сбросить все изменения». (Я как-то предположил, что это Сброс выбранных изменений :/)

«Сбросить выбранные изменения» — это щелчок правой кнопкой мыши по выбранным файлам или использование сочетания клавиш «r».

person Philippe    schedule 31.05.2018