Ответ 1
Вы должны сделать это, добавив refspec для тегов в свою локальную конфигурацию. В частности:
[remote "upstream"]
url = <redacted>
fetch = +refs/heads/*:refs/remotes/upstream/*
fetch = +refs/tags/*:refs/tags/*
В настоящее время у меня есть удаленная настройка git, как показано ниже:
[remote "upstream"]
url = <redacted>
fetch = +refs/heads/*:refs/remotes/upstream/*
Когда я выдаю git pull
в главном ветки, все удаленные головки извлекаются в пульты/вверх по течению, затем пульт дистанционного управления/восходящий/ведущий объединяется в master. Любые теги, которые могут быть достигнуты, также извлекаются одновременно, что очень удобно.
Я бы хотел, чтобы git pull
дополнительно извлекал все теги из удаленного, а не только те, которые непосредственно доступны из головок. Я изначально попытался установить tagopt == --tags
, но обнаружил, что это вызвало только теги, которые были извлечены, и таким образом сломал все. (Юнион даже говорит, что ужасающая неправильная дискуссия).
Есть ли способ сделать git pull
выборки всех удаленных тегов по умолчанию в дополнение к удаленным головам?
Вы должны сделать это, добавив refspec для тегов в свою локальную конфигурацию. В частности:
[remote "upstream"]
url = <redacted>
fetch = +refs/heads/*:refs/remotes/upstream/*
fetch = +refs/tags/*:refs/tags/*
Простой git fetch --tags
работал у меня.
Опция --force
полезна для обновления локальных тегов. В основном, если у вас есть плавающие теги:
git fetch --tags --force
У опции git pull также есть опции --force
, и описание такое же:
Когда git fetch используется с & lt; rbranch & gt;: & lt; lbranch & gt; refspec, он отказывается обновить локальный филиал & lt; lbranch & gt; если только удаленная ветка & lt; rbranch & gt; он выбирает потомок & lt; lbranch & gt;. Эта опция отменяет проверить.
но, согласно документу --no-tags
:
По умолчанию теги, которые указывают на объекты, которые загружаются из удаленный репозиторий извлекается и хранится локально.
Если этот оператор по умолчанию не является ограничением, вы также можете попробовать
git pull --force
Мне показалось, что сработало следующее.
git pull --tags
Это просто. Сделайте
git fetch --all
Я использую это с magit на kernel.org
[remote "upstream"]
url = <redacted>
fetch = +refs/heads/*:refs/remotes/upstream/*
tagOpt = --tags