Подтвердить что ты не робот

Почему в моей ветке `git -l -a` есть запись` remotes/origin/HEAD → origin/master`?

Я не понимаю вторую строку на выходе git branch -l -a: remotes/origin/HEAD -> origin/master.

git branch -l -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

Является ли это остатком от другой операции? Должен ли я его очистить? И как бы я это сделал?

Обычно я работаю с git в cli, но в этом локальном репозитории я экспериментировал с TortoiseGit, чтобы найти легкий рабочий процесс git для друга.

4b9b3361

Ответ 1

Нет, очищать не нужно: это символическая ветка, на которую ссылается ваше удаленное хранилище.
Когда вы клонируете свое хранилище, вы по умолчанию будете в ветке, на которую ссылаются remotes/origin/HEAD.

Смотрите также:

Примечание: вам нужно использовать git branch --list (или git branch), а не git branch -l.

Ответ 2

Вы можете использовать git remote set-head origin -d для удаления символа origin/HEAD символического ref или git remote set-head origin -a для запроса удаленного и автоматического задания указателя origin/HEAD на удаленную ветвь текущего времени.

Ссылка origin/HEAD не обязательна. Он действует только как синтаксический ярлык: если он существует и указывает на origin/master, вы можете использовать только просто origin, где вы в противном случае указывали бы origin/master.

Эта страница git remote (1) описывает это:

набор головки

Устанавливает или удаляет ветвь по умолчанию (т.е. цель symbolic-ref refs/remotes//HEAD) для именованного пульта. Иметь ветвь по умолчанию для удаленного не требуется, но позволяет указать имя удаленный должен быть указан вместо конкретной ветки. Например, если ветвь по умолчанию для источника настроена на master, тогда может быть происхождение, где бы вы обычно не указали источник/мастер.