Как отменить Git оформление главной ветки - PullRequest
0 голосов
/ 11 февраля 2020

Во-первых, да ... Я идиот. Я использовал Git без понимания этого, и теперь я почти уверен, что потерял большую часть своей работы. Я как-то создал то, что выглядело как ветвь на графике, но, возможно, не было настоящей веткой Моя основная работа была на самом деле не в основной ветке - то, что я собирался решить ... в какой-то момент. Я только что закончил решать некоторые неприятные проблемы в своем коде, поставил все и зафиксировал это, когда решил, что пришло время попытаться исправить проблему с веткой master, которая на самом деле является старым кодом. Я проверил основную ветку, не понимая точно, что это значит (потому что я идиот), и теперь я не могу найти какой-либо намек на мой основной код, чтобы вернуться к нему. Я использую код Visual Studio, и это то, что я использовал для проверки основной ветви. Я также использовал Git GUI и не могу найти там ничего о другой ветке. Я просто никогда не думал, что Git оставит меня в ситуации, когда этот код исчезнет, ​​поэтому я не особо задумывался о проверке основной ветки. Но сейчас я боюсь что-либо делать. Есть ли способ увидеть другую ветку или вернуться к моему основному коду?

1 Ответ

4 голосов
/ 11 февраля 2020

(скопировано из комментариев, немного отредактировано для ответа)

Шаг 1 в этом случае: не пани c! Вы совершили , поэтому код все еще должен быть там. Теперь дело за поиском этого.

Первое, на что нужно обратить внимание - это вывод git reflog. Я подозреваю (и комментарии подтверждают), что вы сделали коммит, используя то, что Git называет «отсоединённой головой». Эти коммиты немедленно отменяются, когда вы git checkout какая-то ветка - но, как и вообще аннулированные коммиты, по умолчанию они восстанавливаемые как минимум еще на 30 дней.

Из командной строки интерпретатор - bash или cmd.exe или powershell или что-то еще - запустите git reflog. Посмотрите внимательно на каждое сообщение коммита. Если что-то из того, что вы совершили, захватите сокращенный идентификатор ha sh слева, а затем используйте:

git branch <em>newname hash</em>

, чтобы создать новое имя ветви для этого ха sh ID. Новое имя теперь дает вам доступ к коммиту, а также к любым ранее принятым коммитам, которые вы сделали в режиме «отсоединенного HEAD». Теперь он должен отображаться во всех графических пользовательских интерфейсах, таких как Git GUI и код Visual Studio (хотя я никогда не использовал VS самостоятельно).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...