Если вы запустили git add
для этого файла после того, как вы изменили его, контент был зарегистрирован в .git
- он присутствует там и его можно получить. Хотя это и не так просто - вам придется сначала найти все последние объекты, созданные Git:
find .git/objects/ -type f -printf "%T+\t%p\n" | sort
Они отсортированы по дате модификации, поэтому последние были созданы недавно. Сделайте свой путь вверх - пройдитесь по каждому из этих объектов и запускайте эту команду, пока не найдете свой контент:
git cat-file -p [40 letter hash including 2-letter directory name]
Некоторые из этих объектов - не файлы, а деревья (каталоги) и коммиты, пропустите их.
Если вы не запустили git add
, то Git вообще не знает об этом файле, поэтому вы не можете попросить Git вернуть его обратно.