Я случайно отменил свои изменения в файлах на своем локальном рабочем дереве с помощью git checkout. В настоящее время файлы не выполняются. Можно ли "отменить" этот заказ?
Может ли git отменить проверку неустановленных файлов
Ответ 1
Я считаю, что если файл изменен, но еще не добавлен (поставлен), это чисто "private".
Это означает, что он не может быть восстановлен с помощью GIT, если он перезаписан индексом или версией HEAD (если у вас нет копии вашей текущей работы где-нибудь).
A "private" контент является только видимым в вашем текущем каталоге, но никак не зарегистрированным в Git.
Ответ 2
Если вы используете "профессиональную" среду IDE, вы можете восстановить файлы из локальной истории. В Rubymine, например, вы можете щелкнуть правой кнопкой мыши и посмотреть историю изменений, не зависящую от изменений git, которые я сохранил несколько раз сейчас ^^
Ответ 3
Если вы работаете в редакторе, таком как Sublime Text, и файл все еще открыт, вы можете нажать ctrl + z, и он вернется к состоянию, которое было перед git checkout.
Ответ 4
К сожалению, ваши изменения потеряны. Ваши личные изменения просто перезаписываются.
Если вы не сделали git stash
перед оформлением заказа...
Возьмите его с более яркой стороны: теперь вы можете лучше реализовать вещи;)
Ответ 5
Проверьте локальную историю в своей среде IDE.
Ответ 6
Разработка на OS X? Используя XCode? Вам скорее всего повезет!
Как описано в комментарии qungu, OS X поддерживает автоматически сохраненную историю версий файлов, даже если вы не используете машину времени.
Так что, если вы сдули свои неустановленные локальные изменения с помощью небрежного git checkout.
Вот как вы можете восстановить всю свою работу.
Если кто-то обнаружит, что этот поток уничтожил какую-то работу в XCode, есть способ получить историю автосохранения. Сам XCode не имеет пункта меню для просмотра истории автосохранения, но он сохраняет его. Если вы откроете файлы в TextEdit, вы можете вернуться и просмотреть историю автосохранения в меню "Файл"> "Восстановить".
Который потрясающий, и выздоровел около дня работы для меня вчера.
Вы можете спросить: "Почему пользовательский интерфейс командной строки git не является лучшей VCS, используемой для разработки программного обеспечения в 2016 2017 2018, по крайней мере, сделайте резервную копию файлов, прежде чем просто выбросить их? Как, вы знаете, хорошо написанные программные инструменты в течение последних трех десятилетий ".
Или, возможно, вы спросите: "Почему эта безумно потрясающая функция истории файлов доступна в TextEdit, а не в Xcode, где она мне действительно нужна?"
… И оба они, я думаю, расскажут вам довольно много о нашей отрасли. Или, может быть, вы пойдете и почините эти инструменты. Что было бы здорово.
Ответ 7
Если вы когда-либо спрятали изменения ранее (например, до перезагрузки), это, скорее всего, поможет
Как восстановить удаленный штамп в Git?
даже если у вас уже есть "stash pop'ed изменения".
Ответ 8
Эффективным спасителем для такого рода ситуаций является Time Machine (OS X) или аналогичная система резервного копирования по времени. Это спасло меня пару раз, потому что я могу вернуться и восстановить только один файл.
Ответ 9
Обычно я работаю в папке с Dropbox. Это гарантирует, что я буду иметь текущую папку, доступную вне моей локальной машины и Github. Я думаю, что это мой другой шаг, чтобы гарантировать "контроль версий", отличный от git. Вы можете следовать этому, чтобы вернуть файл в предыдущие версии ваших файлов Dropbox
Надеюсь, это поможет.
Ответ 10
Технически да. Но только в некоторых случаях. Если, например, у вас есть кодовая страница вверх и вы нажмете git checkout, и вы поймете, что вы случайно проверили неправильную страницу или что-то в этом роде. Перейдите на страницу и нажмите "Отменить". (для меня, команда + z), и он вернется к тому, где вы были, прежде чем вы ударите старый добрый git checkout.
Это не будет работать, если ваша страница была закрыта, а затем вы нажмете git checkout. Он работает только в том случае, если фактическая кодовая страница открыта.
Ответ 11
Если вы работаете с открытым терминалом /cmd-запросом и используете любые команды git, которые бы показывали неизмененные изменения (diff
, add -p
, checkout -p
и т.д.), И не закрыли приглашение терминала /cmd с тех пор вы обнаружите, что не поэтапные изменения все еще доступны, если прокрутить до места, где вы выполняли эти вышеупомянутые команды git.
Ответ 12
Согласно ответам выше - вы действительно не можете вернуть свои изменения с помощью git, но каждый разработчик использует некоторую IDE (VSCODE, Sublime и т.д.), Так что просто зайдите туда и выполните command + z
(или что такое команда отмены на вашем Mac OS), или ctrl + z
- должно быть на окнах
Ответ 13
Возможно, ваши изменения не потеряны. Проверьте "git reflog"
Я цитирую статью ниже:
"В основном каждое действие, выполняемое внутри Git, где хранятся данные, вы можете найти его внутри reflog. Git действительно пытается не потерять ваши данные, поэтому если для по какой-то причине вы считаете, что это возможно, вы можете выкапывать его с помощью Git reflog"
Подробнее:
http://gitready.com/intermediate/2009/02/09/reflog-your-safety-net.html