В настоящий момент ни одна ветка + git commit + checkout не находится в какой-либо ветке. Я потерял свои изменения?

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

Как я могу получить мои изменения? Я не могу слить или проверить, так как нет ветки для слияния.

Ответ 1

Вы можете использовать git reflog для получения хеш-фиксации фиксации, которую вы делали, находясь в "никакой ветке" (отсоединенной HEAD) и объединить это в ветку, в которой вы находитесь (возможно, мастер)

Что-то вроде git merge [email protected]{1}

Вы также можете git rebase -i и "выбрать" фиксацию, которую вы хотите, из reflog.

Ответ 2

После выполнения некоторой работы я был в таком же состоянии:

Лилит: менеджер KelSolaar $ git статус

В настоящее время нет ни одной ветки.

Я опубликовал git журнал, чтобы увидеть последний хэш-код фиксации:

Лилит: Менеджер KelSolaar $ git log

совершить 49984303037e970d637161c3154b7fd7d6ae3a43 Автор: KelSolaar Дата: ср окт. 5 22:41:31 2011 +0100

Introduce new "QObject" components category and rename existing ones to "Def

Затем я проверил свою главную ветку:

Лилит: менеджер KelSolaar $ git мастер проверки

Предыдущая позиция HEAD была 4998430... Внесите новые категории компонентов QObject и переименуйте их в "Default" и "QWidget".

Переключен в ветвь 'master'

И я, наконец, слился с использованием хэша commit:

Лилит: Менеджер KelSolaar $ git merge 49984303037e970d637161

Обновление 141bc69..4998430

Перемотка вперед

src/manager/component.py | 2 + -

...

Ответ 3

git checkout - вернет вас к предыдущей ветке:

Thu Feb 21 12:50 AM /src/test ((08f84f4...)) $ git checkout master

Warning: you are leaving 1 commit behind, not connected to
any of your branches:

  08f84f4 Fix everything

Switched to branch 'master'

Thu Feb 21 12:50 AM /src/test (master) $ git checkout -

HEAD is now at 08f84f4... Fix everything

Thu Feb 21 12:50 AM /src/test ((08f84f4...)) $

Ответ 4

Ваша фиксация не исчезла, вы можете восстановить ее, попросив git показать скрытые коммиты и вернуть их во временную ветвь.

См. этот ответ для получения инструкций.

Ответ 5

Используйте "git reflog", он показывает хеши фиксации результатов вашей истории команд git. Затем вы можете "git co hash", и когда вы нашли правильный, установите/сделайте ветку для него.

Ответ 6

Вы никогда не "не в какой-либо отрасли". Возможно, вы были в ветке с именем master, но вы были на ветке, когда вы ее совершили. Так что фиксация SOMEWHERE.

Используйте git log для просмотра истории. Вы можете использовать git reset для возврата во времени (в том числе, при необходимости, оставляя изменения в рабочем каталоге).