Сможете ли вы восстановиться после серьезной ошибки git?

Я не совсем уверен, что я сделал, но я просто потерял неделю работы над Git. Я думал, что смогу исправить свою ошибку, но все, что я делаю, только усугубляет ситуацию. Произошла ошибка push, и я попытался вернуться к предыдущему указателю. Сейчас мое репо практически неузнаваемо. Я думал, что всегда можно восстановить вашу работу в Git. Когда я смотрю на каждый указатель, я даже не вижу файлы. Может ли git просто удалить вашу работу? Если нет, какие шаги мне нужно предпринять для восстановления? Какую информацию я могу предоставить, чтобы помочь людям мне помочь? Я использую исходное дерево Atlassian, но могу использовать и командную строку.

$ git reflog
0c5aa71 (HEAD -> master, origin/master, origin/HEAD) HEAD@{0}: reset: moving to                                                        0c5aa71c2f25ab704bd5d726ba1f4d8685877680
c472404 HEAD@{1}: reset: moving to c4724042850c29427171c02f72ae754d3fe00254
c472404 HEAD@{2}: checkout: moving from master to master
c472404 HEAD@{3}: checkout: moving from master to master
c472404 HEAD@{4}: checkout: moving from master to master
c472404 HEAD@{5}: checkout: moving from master to master
c472404 HEAD@{6}: reset: moving to c4724042850c29427171c02f72ae754d3fe00254
bca4b8f HEAD@{7}: revert: Revert "A bunch of random work"
c472404 HEAD@{8}: commit: A bunch of random work
0c5aa71 (HEAD -> master, origin/master, origin/HEAD) HEAD@{9}: commit: New slide                                                        format
e7726ac HEAD@{10}: commit: Updates after moving active files to public folder.
2821d93 HEAD@{11}: commit: Initial Commit
e500340 HEAD@{12}: clone: from https://github.com/MassStreetAnalytics/data-wareh                                                       ouse-projects-source-material.git

git checkout c472404
error: The following untracked working tree files would be overwritten
by checkout:
        Course Videos and Section Specific Slides/02 Data Warehouse Overview/
          0205 What technolgy do you need/0205 What technology do you need.pptx
Please move or remove them before you switch branches.
error: The following untracked working tree files would be removed by checkout:
        01 Introduction To The Course/01 Instructor Introduction/
          01 data-warehouse-projects.pptx
Please move or remove them before you switch branches.
Aborting

Нет, не всегда возможно восстановить вашу работу в git, с помощью сброса и принудительных нажатий довольно легко удалить коммиты, а с помощью команды clean легко избавиться от неустановленных изменений. , или даже если это вообще возможно, совершенно неясно без проверки вашего репозитория. Вы можете попробовать посмотреть рефлог и посмотреть, сохранились ли ваши предыдущие коммиты. Во-первых, сделайте резервную копию всей вашей локальной папки, основная причина, по которой у людей возникают проблемы с git, заключается в том, что они не прекращают взламывать, когда дела идут плохо.

Lasse V. Karlsen 26.10.2018 08:33

Я обновил вопрос в моем рефлоге. Мне нужно вернуться к c472404 HEAD @ {8}: commit: Куча случайной работы.

Bob Wakefield 26.10.2018 08:46

Я использую помимо git дополнительное решение для резервного копирования на случай восстановления файлов, т.е. двоичный и не должен отслеживаться. Я рекомендую вам то же самое.

Jacek Krawczyk 26.10.2018 08:47

Я делал это. Резервная копия, по-видимому, очень эффективна и уже зафиксировала изменения.

Bob Wakefield 26.10.2018 08:50
git checkout c472404, за которым следует git checkout -b TEMP, тогда у вас есть ветка, указывающая на этот коммит. Затем вам нужно выяснить все, что не так с вашим репозиторием. Например, указывает ли master на правильную фиксацию? Правильное ли состояние у вас в ветке TEMP? Выясните все это без выполнения команд git, которые изменяют коммиты, затем опишите здесь, и люди будут следить за этим.
Lasse V. Karlsen 26.10.2018 08:59

Вопрос обновлен. Когда я бегу к кассе, я получаю указанное выше. Я получаю то же сообщение для -b. Я не знаю, что сделает удаление неотслеживаемого рабочего дерева. Могу ли я это сделать?

Bob Wakefield 26.10.2018 09:04

Вернуться к фиксации (конечно, без восстановления того, что не было зарегистрировано на тот момент) так же просто, как выполнить git checkout <SHA>. Вы это знаете, и вы пробовали это. Теперь попытка проверить конфликтует с незафиксированными изменениями в вашем дереве работы. Так что переместите их в сторону (буквально - переместите весь исходный каталог в другое место). Как только ваше исходное дерево станет пустым, вы сможете выполнить чистую проверку этого коммита. Затем вы можете увидеть, нужно ли что-нибудь из ваших испорченных файлов рабочего дерева вернуть туда.

Peter - Reinstate Monica 26.10.2018 09:08

Не отслеживаемые файлы не отслеживаются, git не заботится о них. Если у вас нет их копий вне репозитория или даже в другой ветке, где вы их отслеживаете с помощью делать, то их удаление приведет к их удалению. Самый важный совет, который я могу вам дать: 1. Сделайте резервную копию своей папки (репозиторий + рабочая папка) и что вы 2. Не взламывайте команды и действия, последствия которых вы не знаете.

Lasse V. Karlsen 26.10.2018 09:09

Двигайся и проверяй! Это вернуло меня туда, где я должен был быть! Спасибо!

Bob Wakefield 26.10.2018 09:17

@BobWakefield Приятно слышать :-).

Peter - Reinstate Monica 26.10.2018 09:28
0
10
40
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Напишу свой комментарий в качестве быстрого ответа.

Если у вас есть конфликты с локальными, незафиксированными изменениями рабочего дерева, когда вы пытаетесь выполнить извлечение (или слияние, или вытягивание, или что-то, что изменяет рабочее дерево с файлами из репозитория), git останавливается, потому что он не знает, работает ли то, что было бы перезаписано, ценно для вас.

Вы можете просто удалить конфликтующие файлы или, если вы не уверены, переместить их в другое место для последующей проверки. Тогда проверка произвольной фиксации должна пройти без каких-либо проблем.

После этого вы можете вручную применить изменения, которые вы действительно хотите сохранить, которые присутствуют в сохраненных файлах, например, с помощью инструмента сравнения / слияния, который может обрабатывать каталоги.

Ага, перемещение файлов вернуло меня туда, где я должен был быть! ОТЛИЧНО!

Bob Wakefield 26.10.2018 09:18

Другие вопросы по теме