Ответы:
Я полагаю, что если файл изменен, но еще не добавлен (подготовлен), он является чисто «приватным».
Это означает, что GIT не может быть восстановлен, если перезаписан индексом или версией HEAD (если у вас нет где-нибудь копии вашей текущей работы). "
«Частный» контент виден только в вашем текущем каталоге, но никак не зарегистрирован в Git.
git checkout --), я ожидал, что он сможет отменить эту операцию, возможно, через reflog. Это неправильное ожидание?
git checkout folders/subfolders/fileно нажал Enter случайно folderи потерял всю свою работу. / находится на расстоянии 1 см от клавиатуры, и я часто переключаюсь между машинами с разной раскладкой клавиатуры, поэтому мои пальцы привыкли к новым позициям через 10-15 минут. Трудно поверить в 2018 году, что git trashs файлы, хотя в git book говорится, что git делает все возможное, чтобы не потерять работу.
Если вы используете «профессиональную» IDE, есть большие шансы, что вы сможете восстановить файлы из локальной истории. Например, в Rubymine вы можете щелкнуть правой кнопкой мыши по файлам и посмотреть историю изменений, не зависящих от изменений в git, спасла меня несколько раз ^^
Если вы работаете в редакторе, таком как Sublime Text, и у вас все еще открыт файл, вы можете нажать ctrl + z, и он вернется в состояние, в котором он находился до проверки git.
К сожалению, ваши изменения потеряны. Ваши личные изменения просто перезаписываются. Если вы не сделали git stashдо оформления заказа ...
Возьмите это с более яркой стороны: теперь вы можете реализовать вещи еще лучше;)
Проверьте местную историю в вашей IDE.
Разработка на OS X? Используя XCode? Вам скорее всего повезет!
Как описано в комментарии qungu , OS X поддерживает автоматически сохраненную историю версий файлов, даже если вы не используете машину времени .
Таким образом, если вы сдули свои необработанные локальные изменения небрежным образом git checkout ., вот как вы, вероятно, сможете восстановить всю свою работу.
Если кто-то обнаружит, что этот поток уничтожил какую-то работу в XCode, есть способ получить историю автосохранения. Сам XCode не имеет пункта меню для просмотра истории автосохранения, но он сохраняет его. Если вы откроете эти файлы в TextEdit, вы можете вернуться и просмотреть историю автосохранения в меню «Файл»> «Восстановить».
Который потрясающий, и выздоровел около дня работы для меня вчера.
Вы можете спросить: «Почему пользовательский интерфейс командной строки git не является лучшей VCS, используемой для разработки программного обеспечения в2016 2017 20182019, по крайней мере, сделайте резервную копию файлов, прежде чем просто выбросить их? Например, хорошо написанные программные инструменты за последние три десятилетия ".
Или, возможно, вы спросите: «Почему эта безумно потрясающая функция истории файлов доступна в TextEdit, а не в Xcode, где она мне действительно нужна?»
… И оба они, я думаю, расскажут вам довольно много о нашей отрасли. Или, может быть, вы пойдете и почините эти инструменты. Что было бы супер.
Modelсожалению, было
В VSCODE у меня работал ctrl + z (отменить)
Я сделал git checkout .вместо, git add .и все мои изменения файла были потеряны.
Но теперь, используя command + zмой Mac, восстановил изменения и сохранил тонус работы для меня.
Если вы когда-нибудь хранили изменения (например, перед перебазировкой), это, вероятно, поможет
Как восстановить сброшенный тайник в Git?
даже если вы уже «запрятали» изменения.
Эффективным спасителем для такого рода ситуаций является Time Machine (OS X) или аналогичная система резервного копирования на основе времени. Это спасло меня пару раз, потому что я могу вернуться и восстановить только один файл.
Я только что это случилось со мной, я проверил целую папку, содержащую часы работы! К счастью, я обнаружил, что моя среда IDE Netbeans хранит историю каждого файла, что позволило мне восстановить 99% материала, хотя мне нужно было исправить некоторые вещи вручную.
У меня обычно есть вся моя работа в папке dropbox. Это гарантирует, что текущая папка будет доступна вне моей локальной машины и Github. Я думаю, что это мой другой шаг, чтобы гарантировать «контроль версий», отличный от git. Вы можете следовать этому, чтобы вернуть ваш файл к предыдущим версиям ваших файлов Dropbox.
Надеюсь это поможет.
Технически да. Но только в определенных случаях. Например, если у вас есть кодовая страница, и вы нажали git checkout, и вы понимаете, что случайно зашли не на ту страницу или что-то в этом роде. Перейдите на страницу и нажмите «Отменить». (для меня команда + z), и он вернется туда, где вы были прежде, чем вы доберетесь до старой доброй проверки Git.
Это не будет работать, если ваша страница была закрыта, а затем вы нажали git checkout. Работает только если открыта фактическая кодовая страница
Если вы работаете с терминалом / CMD подсказка открыто, и использовал какую - либо команду , которые GIT бы показали unstaged изменения ( diff, add -p, checkout -pи т.д.), и не закрыли терминал / CMD строки так, вы найдете unstaged изменения все еще доступны, если вы прокрутите до того места, где вы выполняли вышеупомянутые команды git.
Чувак,
Допустим, вы очень удачливый парень, как и я, вернитесь к своему редактору и отмените (команда + Z для Mac), вы должны увидеть потерянный контент в файле. Надеюсь, это помогло вам. Конечно, это будет работать только для существующих файлов.
Может быть, ваши изменения не потеряны. Проверьте "git reflog"
Я цитирую статью ниже:
«По сути, каждое действие, которое вы выполняете внутри Git, где хранятся данные, вы можете найти в журнале ссылок. Git очень старается не потерять ваши данные, поэтому, если вы по какой-то причине считаете, что это так, есть вероятность, что вы сможете откопать их». используя git reflog "
Смотрите подробности:
http://gitready.com/intermediate/2009/02/09/reflog-your-safety-net.html
git reflogздесь, я нашел этот ответ, когда искал удаление git checkout HEAD .- я хотел напечатать git reset HEAD .- я только что сделал 'Git reset --soft HEAD ~ 1' и не знал Примерно git reflogтак удалось вернуть работу, которую я проделал :)