Я пишу общий скрипт, который извлекает некоторые ветки из набора удаленных репозиториев, и я бы хотел, чтобы он извлекал только некоторые из веток. Для большинства веток это легко, потому что они указаны по имени, и я могу просто написать соответствующую refspec, но я не нашел способа получить «ветку по умолчанию».
Я попытался перейти к git fetch refspec формы refs/heads/HEAD:MY/LOCAL/BRANCH, но это говорит мне:
фатально: не удалось найти удаленную ссылку refs/heads/HEAD
Как я могу указать «ветвь по умолчанию» в refspec? В настоящее время я просто жестко кодирую master, но, конечно, это работает только с теми репозиториями, которые придерживаются этого значения по умолчанию.
Да! Не могу поверить, что не смог найти его ни в документах, ни в веб-поиске. Спасибо, отлично работает. Если вы сделаете это ответом, я могу принять его.
refs/heads/HEAD
Это просто HEAD, даже не refs/HEAD. Так что команда должна быть
git fetch origin HEAD:MY/LOCAL/BRANCH
Вы можете увидеть доступные ссылки, используя
git ls-remote origin
Чтобы увидеть только HEAD:
git ls-remote origin HEAD
Смотрите документы на https://git-scm.com/docs/git-ls-remote и https://git-scm.com/docs/gitrevisions
Это просто HEAD, даже не refs/HEAD.