У вас проблемы с пониманием того, что такое указатель HEAD. <br/> <br/> <blockquote> в новой ветке будет правильно установлено положение HEAD </blockquote> <br/> <blockquote> установить в ветке main ту же позицию HEAD, что и в ветке temp </blockquote> <br/> Указатель HEAD существует не в ветке, а в репозитории в целом, это то место, где мы сейчас находимся. Указатель HEAD соответствует тому состоянию проекта, который сейчас у вас распакован в рабочем каталоге. Если рабочий каталог один, то и указатель HEAD один. <br/> <br/> Обычно указатель HEAD ссылается на ветку, но если по ошибке, вместо reset использовать checkout на произвольный коммит, то указатель HEAD станет ссылаться на этот коммит, а не на ветку. Мы как бы выходим из ветки в никуда. Это состояние называется detached HEAD.