Восстановить удаленную ветвь в Git
Я удалил свою ветку по ошибке следующим образом:
git branch -D demo
Но я хочу восстановить его... Я получаю это после git reflog
541b2f5 [email protected]{23}: checkout: moving from demo to master
06fa6d5 [email protected]{24}: commit (merge): remove ajax call for deleting variables and transfomers
b84b60a [email protected]{25}: checkout: moving from demo1 to demo
Я хочу создать ветку с помощью sha 06fa6d5
... поэтому я попробовал это:
git checkout -b demo 06fa6d5
git checkout -b demo [email protected]{24}
Но я не получил код из этого...
Ответы
Ответ 1
Создайте список всех оборванных или недостижимых коммитов.
git fsck --full --no-reflogs --unreachable --lost-found
Распечатайте список сообщений фиксации для всех коммитов в потерянных и найденных.
ls -1 .git/lost-found/commit/ | xargs -n 1 git log -n 1 --pretty=oneline
Найдите недостающую фиксацию в процессе ручной проверки (т.е. чтения).
Создайте новую ветку с отсутствующим фиксатором в качестве ветки ветки.
git checkout -b branch-name SHA
Ответ 2
Получив потенциальный sha1 для последнего конца ветки demo
, используйте gitk sha1
, чтобы фактически просмотреть историю фиксации, чтобы проверить, что у вас есть правильный.