Відповіді:
Я вважаю, що якщо файл модифікований, але ще не доданий (поетапний), він є чисто "приватним".
Тобто GIT не може бути відновлений, якщо перезаписати індекс або версію HEAD (якщо ви десь не маєте копії вашої поточної роботи). "
"Приватний" вміст видно лише у вашому поточному каталозі, але жодним чином не зареєстрований у Git.
git checkout --
), я б очікував, що він може скасувати цю операцію, можливо, через reflog
. Це неправильне очікування?
git checkout folders/subfolders/file
але потрапив увійти випадково після того, як потрапив до folder
та втратив всю свою роботу. / знаходиться на 1 см від клавіші клавіатури, і я часто перемикаюсь між машинами з різними розкладками клавіатури, тому часто 10-15 хвилин мої пальці звикають до нових позицій. Важко повірити в 2018 році, що git trashs файли, навіть якщо в git книзі сказано, що git робить це, як це не втратити роботу.
Якщо ви використовуєте "професійний" IDE, шанси на те, що ви можете відновити файли з локальної історії. Наприклад, у Rubymine ви можете клацнути правою кнопкою миші файли і переглянути історію змін, незалежних від змін git, врятувавши мене кілька разів ^^
Якщо ви працюєте в такому редакторі, як Sublime Text, і відповідний файл все ще відкритий, ви можете натиснути ctrl + z, і він повернеться до стану, який він мав перед git checkout.
На жаль, ваші зміни втрачені. Ваші приватні модифікації просто перезаписані. Якщо ви git stash
раніше не оформляли замовлення ...
Візьміть це з більш яскравого боку: тепер ви можете реалізувати речі ще краще;)
Перевірте локальну історію в IDE.
Розвивається на OS X? Використовуєте Xcode? Ймовірно, вам пощастить!
Як описано в коментарі qungu , OS X підтримує історію збереження файлів із автоматичним збереженням версій, навіть якщо ви не використовуєте машину часу .
Отже, якщо ви знехтували свої нестандартні локальні зміни необережно git checkout .
, ось як ви, ймовірно, можете відновити всю свою роботу.
Якщо хтось виявить, що цей потік знищив якусь роботу в XCode, є спосіб отримати історію автозбереження. У самому XCode немає запису в меню, щоб побачити історію автозбереження, але він зберігає його. Якщо ви відкриєте питання, про які йдеться, у TextEdit, ви можете повернути їх і переглянути історію автозбереження в розділі Файл> Повернути.
Який дивовижний і одужав про день роботи для мене, вчора.
Ви можете запитати: "Чому інтерфейс командного рядка git не є основним VCS, який використовується для інженерії програмного забезпечення в2016 рік 2017 рік 2018 рік2019 рік, принаймні створити резервну копію файлів, перш ніж їх просто видути? Як, знаєте, добре написані програмні засоби протягом останніх трьох десятиліть ".
Або, можливо, ви запитуєте: "Чому ця шалено дивовижна історія файлів доступна в TextEdit, але не Xcode там, де мені це потрібно?"
… І те, і інше, я думаю, розповість вам досить багато про нашу галузь. А може, ти підеш і виправиш ці інструменти. Що було б супер.
Model
жаль,
У VSCODE для мене працював ctrl + z (скасувати)
Я зробив git checkout .
замістьgit add .
і всі зміни мого файлу були втрачені.
Але тепер, використовуючи command + z
в моєму комп'ютері, відновив зміни і врятував тон роботи для мене.
Якщо ви коли-небудь приховували зміни раніше (наприклад, перед повторним випуском), це, ймовірно, допоможе
Як відновити скинуту скриньку в Git?
навіть якщо ви вже "приховали" зміни.
Ефективним рятувальником подібних ситуацій є Time Machine (OS X) або подібна система резервного копіювання на основі часу. Це врятувало мене кілька разів, тому що я можу повернутися назад і відновити лише той один файл.
У мене просто так трапилося, я перевірив цілу папку, що містить години роботи! На щастя, я з'ясував, що мій IDE Netbeans зберігає історію кожного файлу, що дозволило мені відновити 99% матеріалів, хоча мені потрібно було виправити кілька речей вручну.
Я, як правило, всю свою роботу в папці "dropbox". Це гарантує мені, що у мене буде наявна поточна папка поза моєю локальною машиною та Github. Я думаю, що це мій інший крок - гарантувати "контроль над версіями", крім git. Ви можете дотримуватися цього, щоб повернути файл до попередніх версій файлів, що випадають
Сподіваюся, це допомагає.
Технічно так. Але лише в певних випадках. Якщо, наприклад, у вас є сторінка коду, і ви потрапили в git checkout, і ви розумієте, що випадково перевірили неправильну сторінку чи щось таке. Перейдіть на сторінку і натисніть скасувати. (для мене команда + z), і вона повернеться туди, де ви були, перш ніж потрапити на старий добрий замок.
Це не спрацює, якщо ваша сторінка закрита, і ви натискаєте 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 - Software HEAD ~ 1» і не знав про git reflog
так вдалося повернути роботу, яку я зробив :)