Подтвердить что ты не робот

Git/снятый HEAD, верните работу?

Я сделал десятки коммитов по тому, что, как я думал, был моей веткой, затем проверил другую ветку.

Желая вернуться к моей начальной ветке, я не нашел обновленный код. Посмотрев на мою историю на консоли, я понял, что работал в отдельной ветке...

Как можно получить работу, которую я сделал на отдельной ветке?

4b9b3361

Ответ 1

Да. Вы можете использовать reflog. Попробуйте git log -g HEAD. Это покажет вам reflog для HEAD, т.е. Каждое отдельное сообщение, на которое указывает HEAD, и причина, по которой он был изменен на этот коммит. Вы должны найти свою команду, которая проверила ветку, и посмотреть, что было в предыдущей фиксации.

Вы также можете использовать другой синтаксис для индексации в рефлоге. Если вы только что выполнили git checkout branch, то [email protected]{1} будет ссылаться на предыдущую фиксацию фиксации (так что вы можете git checkout [email protected]{1} вернуться к ней). Или, если вы знаете, что 10 минут назад HEAD указывал на правильную вещь, вы можете использовать git checkout [email protected]{10.minutes.ago}.

Ответ 2

Отдохните, все еще есть:)

Просто позвоните

git reflog

и git расскажут вам, что совершает HEAD, указанный ранее. Будет строка типа

checkout: moving from c70e36e25ac2dbedde6cb376719381fe0ab53f19 to master

сообщит вам SHA1 о кончине ваших коммитов с отсоединенной головкой. Создайте новую ветвь, указывающую на этот кончик, используя

git branch saved-commits c70e36e25ac2dbedde6cb376719381fe0ab53f19

Теперь вы можете переделать эту ветку поверх ветки, на которую должны были идти фиксации.