Я случайно отменил свои изменения в файлах в моем локальном рабочем дереве с помощью git checkout. Файлы не находятся в данный момент. Возможно ли отменить эту проверку?
Нет, мы не можем, но если вы используете Eclipse, мы можем проверить Team -> Local History
USM
Ответы:
106
Я полагаю, что если файл изменен, но еще не добавлен (подготовлен), он является чисто «приватным».
Это означает, что GIT не может быть восстановлен, если перезаписан индексом или версией HEAD (если у вас нет где-нибудь копии вашей текущей работы). "
«Частный» контент виден только в вашем текущем каталоге, но никак не зарегистрирован в Git.
Я понимаю, что изменения в «приватном» файле не могут быть отменены git. Однако, если файл был изменен с помощью git (например, через git checkout --), я ожидал, что он сможет отменить эту операцию, возможно, через reflog. Это неправильное ожидание?
Ciprian Tomoiagă
2
@CiprianTomoiaga reflog для прошлых неразрешенных ссылок фиксаций. Если то, что вы хотите восстановить, не было зафиксировано (или поставлено), reflog вам не поможет.
VonC
3
@CiprianTomoiaga для любого частного контента (еще не добавленного), вы бы полагались исключительно на свой редактор или IDE. Пример затмения: help.eclipse.org/neon/…
VonC
5
Вот Это Да! Unbelieable. Мне нужно было проверить один файл, поэтому я хотел набрать, git checkout folders/subfolders/fileно нажал Enter случайно folderи потерял всю свою работу. / находится на расстоянии 1 см от клавиатуры, и я часто переключаюсь между машинами с разной раскладкой клавиатуры, поэтому мои пальцы привыкли к новым позициям через 10-15 минут. Трудно поверить в 2018 году, что git trashs файлы, хотя в git book говорится, что git делает все возможное, чтобы не потерять работу.
мужчина
1
@gman Помогает ли вам приведенный ниже ответ о «местной истории», предоставленной IDE, восстановить вашу работу?
VonC
174
Если вы используете «профессиональную» IDE, есть большие шансы, что вы сможете восстановить файлы из локальной истории. Например, в Rubymine вы можете щелкнуть правой кнопкой мыши по файлам и посмотреть историю изменений, не зависящих от изменений в git, спасла меня несколько раз ^^
К вашему сведению, эта функция доступна во всем семействе «профессиональных» IDE JetBrains: Pycharm, IDEA, PHPStorm, Webstorm. Спас мой бакен сегодня. Спасибо, Кристоф!
Бен Робертс
6
Я должен поблагодарить вас. Я использую WebStorm и совершенно забыл об этой функции, хотя я использую ее довольно часто. Я просто был настолько увлечен потерей кода, что даже не думал об этом!
Тайсон Phalp
8
В затмении вы можете щелкнуть правой кнопкой мыши по файлу -> сравнить с -> местной истории
Мараг
5
превосходен. Sublime2 отменяет также откат изменений, сделанных случайной проверкой git на диске.
Shuckc
8
Если кто-то обнаружит, что этот поток уничтожил какую-то работу в XCode, есть способ получить историю автосохранения. Сам XCode не имеет пункта меню для просмотра истории автосохранения, но он сохраняет его. Если вы откроете эти файлы в TextEdit, вы можете вернуться и просмотреть историю автосохранения в меню «Файл»> «Восстановить».
Qingu
66
Если вы работаете в редакторе, таком как Sublime Text, и у вас все еще открыт файл, вы можете нажать ctrl + z, и он вернется в состояние, в котором он находился до проверки git.
Я наткнулся на это исправление случайно только сейчас, и собирался опубликовать новый ответ. Похоже, что Sublime захватывает Git, изменяя состояние файла в его истории изменения файла.
Тимма
Работал для меня в Ecipse.
Аномалия
4
Работал и для кода Visual Studio
intotecho
44
К сожалению, ваши изменения потеряны. Ваши личные изменения просто перезаписываются. Если вы не сделали git stashдо оформления заказа ...
Возьмите это с более яркой стороны: теперь вы можете реализовать вещи еще лучше;)
Просто сделал ошибку, не ставя мои изменения и заставил проверить. Я проверил свою локальную историю в Android Studio (просмотр -> последние изменения) и отменил последние сделанные мной изменения. Более подробная информация здесь jetbrains.com/help/idea/2016.3/...
Emen
Это прекрасно работает в RubyMine, действие по удалению ваших изменений будет называться «Внешнее изменение». Большое спасибо за этого Марцина, он просто спас мне час потерянной работы!
AndrewSouthpaw
25
Разработка на OS X? Используя XCode? Вам скорее всего повезет!
Как описано в комментарии qungu , OS X поддерживает автоматически сохраненную историю версий файлов, даже если вы не используете машину времени .
Таким образом, если вы сдули свои необработанные локальные изменения небрежным образом git checkout ., вот как вы, вероятно, сможете восстановить всю свою работу.
Если кто-то обнаружит, что этот поток уничтожил какую-то работу в XCode, есть способ получить историю автосохранения. Сам XCode не имеет пункта меню для просмотра истории автосохранения, но он сохраняет его. Если вы откроете эти файлы в TextEdit, вы можете вернуться и просмотреть историю автосохранения в меню «Файл»> «Восстановить».
Который потрясающий, и выздоровел около дня работы для меня вчера.
Вы можете спросить: «Почему пользовательский интерфейс командной строки git не является лучшей VCS, используемой для разработки программного обеспечения в2016201720182019, по крайней мере, сделайте резервную копию файлов, прежде чем просто выбросить их? Например, хорошо написанные программные инструменты за последние три десятилетия ".
Или, возможно, вы спросите: «Почему эта безумно потрясающая функция истории файлов доступна в TextEdit, а не в Xcode, где она мне действительно нужна?»
… И оба они, я думаю, расскажут вам довольно много о нашей отрасли. Или, может быть, вы пойдете и почините эти инструменты. Что было бы супер.
Я могу подтвердить, что это работает. Это просто сэкономило мне часы работы!
Бруно Роча
у меня не получилось, потому что дело, к Modelсожалению, было
brahimm
@brahimm Модель?
Бенджон
1
Это просто спасло меня от душевной боли. Огромное спасибо.
squarefrog
1
Очень интересно: я щелкнул правой кнопкой мыши по своему исходному файлу и посмотрел на меню «Открыть с помощью». Оба TextEdit 1.14 и TextEdit 1.6 были там в качестве выбора. Только TextEdit 1.14 имел возможность вернуться к более старым версиям. Пользовательский интерфейс был очень хорошим, как и TimeMachine.
Bugloaf
7
В VSCODE у меня работал ctrl + z (отменить)
Я сделал git checkout .вместо, git add .и все мои изменения файла были потеряны.
Но теперь, используя command + zмой Mac, восстановил изменения и сохранил тонус работы для меня.
Эффективным спасителем для такого рода ситуаций является Time Machine (OS X) или аналогичная система резервного копирования на основе времени. Это спасло меня пару раз, потому что я могу вернуться и восстановить только один файл.
Уважаемый downvoter - не могли бы вы объяснить, как я мог бы улучшить этот ответ?
sscirrus
1
Я только что это случилось со мной, я проверил целую папку, содержащую часы работы! К счастью, я обнаружил, что моя среда IDE Netbeans хранит историю каждого файла, что позволило мне восстановить 99% материала, хотя мне нужно было исправить некоторые вещи вручную.
Технически да. Но только в определенных случаях. Например, если у вас есть кодовая страница, и вы нажали 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 "
Не теряйте надежды - reflog помогает, только если вы содержательно взаимодействовали с git. Просто редактируете файл, а затем удаляете его с помощью git checkout? мерзавец никогда не имел шансов.
Боб Гилмор,
1
+1 от меня - думаю, что стоит упомянуть git reflogздесь, я нашел этот ответ, когда искал удаление git checkout HEAD .- я хотел напечатать git reset HEAD .- я только что сделал 'Git reset --soft HEAD ~ 1' и не знал Примерно git reflogтак удалось вернуть работу, которую я проделал :)
Рассел Англия
1
К сожалению, git checkout <revision> и git checkout <path> - это две совершенно разные и не связанные команды. Первый сохраняет ваши локальные изменения, второй нет.
Ответы:
Я полагаю, что если файл изменен, но еще не добавлен (подготовлен), он является чисто «приватным».
Это означает, что 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 .
, вот как вы, вероятно, сможете восстановить всю свою работу.Который потрясающий, и выздоровел около дня работы для меня вчера.
Вы можете спросить: «Почему пользовательский интерфейс командной строки git не является лучшей VCS, используемой для разработки программного обеспечения в
2016201720182019, по крайней мере, сделайте резервную копию файлов, прежде чем просто выбросить их? Например, хорошо написанные программные инструменты за последние три десятилетия ".Или, возможно, вы спросите: «Почему эта безумно потрясающая функция истории файлов доступна в 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
так удалось вернуть работу, которую я проделал :)