Gitx Как мне получить свою "Отдельную HEAD", которая возвращается в мастер

Используя Git X и, должно быть, по каким-то причинам пошатнулся. Похоже, несколько дней назад я создал ветвь с именем detached HEAD и выполнял ее. Мой обычный процесс заключается в фиксации master, а затем нажмите на origin. Но я не могу нажать detached HEAD.

Моя следующая остановка напортачила меня. Я выбрал git checkout master - и моя ветвь detached HEAD исчезла. Возвращаясь к моему проекту, все мои изменения за последние несколько дней были уничтожены.

Есть ли способ вернуть эти изменения?

Ответ 1

Если бы checkout master было последним, что вы сделали, то reflog entry [email protected]{1} будет содержать ваши коммиты (в противном случае используйте git reflog или git log -p, чтобы найти их). Используйте git merge [email protected]{1}, чтобы переслать их в мастер.

EDIT:

Как отмечено в комментариях, Git Готово имеет отличную статью.

git reflog и git reflog --all предоставят вам хэши фиксации ошибочных коммитов.

Git Ready: Reflog, Your Safety Net

Источник: http://gitready.com/intermediate/2009/02/09/reflog-your-safety-net.html

Ответ 2

Если ваш отсоединенный HEAD является быстрым переходом от мастера, и вы просто хотите, чтобы коммиты были выше по течению, вы можете

git push origin HEAD:master

для прямого нажатия или

git checkout master && git merge [ref of HEAD]

объединит его обратно в локальный мастер.