MyTetra Share
Делитесь знаниями!
Git: Как исправить HEAD detached from
Время создания: 11.10.2014 10:55
Текстовые метки: git, HEAD, detached, status
Раздел: Компьютер - Программирование - Системы контроля версий (VCS) - Git
Запись: xintrea/mytetra_syncro/master/base/1413010541a7d8hww8g7/text.html на raw.github.com

При работе с Git может возникнуть такая ситуация: команда git push не заливает изменения на сервер, а команда git status показывает:



$ git status

HEAD detached from 87dc87b



Это может означать, что вы делали какую-то навигацию по истории коммитов, и неправильно вернулись к последнему коммиту.

Для того, чтобы понимать, что произошло, настоятельно рекомендуется прочитать следующую небольшую статью:



Git: что делать в состоянии detached head



Исправить эту проблему можно 4-мя командами:



git branch temp
git checkout temp
git branch -f master temp
git checkout master



И, опционально,



git branch -d temp



Что при этом происходит:



1. создаем временную ветку с именем temp, причем в новой ветке будет правильно установлено положение HEAD
2. переключаемся на временную ветку temp
3. в ветке master устанавливается та же позиция HEAD, что и в ветке temp
4. переключиться на ветку master



И опционально:



5. удалить временную ветку



Еще один вариант, короткий



git checkout имяВеткиГдеВыНаходитесь



- эта команда переключит проект в последний коммит текущей ветки. Точнее, в состоянии detached head, проект не находится ни в какой ветке. git checkout branchname просто переключит проект на последний коммит той ветки, которая указана. Это значит, что до появления ошибки нужно знать, в какой ветке ты находишься. Для того чтобы посмотреть, где находился, можно воспользоваться командой:



git reflog



Самый правильный вариант



git checkout HEAD@{1}



Так же в этом разделе:
 
MyTetra Share v.0.64
Яндекс индекс цитирования