С тех пор, как я создал свой репозиторий, создается впечатление, что созданные мной теги не помещаются в репозиторий. Когда я делаю git tag
в локальном каталоге все теги присутствуют, но когда я вхожу в удаленный репозиторий и делаю a git tag
, появляются только первые несколько.
В чем может быть проблема?
git push --follow-tags
Теперь может быть полезным, см. мой ответ нижеОтветы:
Вы могли бы сделать это:
источник
git push --tags
поскольку избавиться от плохих тегов может быть очень и очень трудно, когда ваши коллеги обучены нажимать на все теги, поскольку люди продолжают нажимать старые плохие теги, которые они имеют локально, каждый раз, когда они хочу добавить новый тег. Из-за этого я буду рекомендовать использовать его только каждомуgit push origin <tag_name>
». - скопировано с stackoverflow.com/a/5195913/4130619В стандартной конфигурации git remote вы должны явно указывать теги (в то время как они выбираются автоматически вместе с коммитами, на которые они указывают). Вам нужно использовать
нажать одну метку, или
нажать на все теги (или
git push --tags
, как правило, нажать на удаленный по умолчаниюorigin
).Это очень предназначенное поведение, чтобы сделать push-теги явными. Нажатие тегов должно быть обычно осознанным выбором.
Подводя итог тому, что написал Хунио С. Хамано (в комментариях @Andre Miras)
Вот почему
git fetch
автоматически «следит» за тегами, то есть он загружает теги при загрузке ревизий, на которые они указывают - другими словами, загружает все соответствующие опубликованные теги.Вот почему вам нужно явно указать тег, чтобы пометить тег как открытый.
В качестве альтернативы вы можете настроить пульт, на который вы нажимаете, чтобы всегда выдвигать все теги, например, поместить что-то подобное в ваш
.git/config
:Это означает принудительное нажатие всех головок (всех ветвей) и всех тегов (если вы не хотите принудительного толкания головок, удалите префикс «+» из refspec).
источник
Обратите внимание, что начиная с git 1.8.3 (22 апреля 2013 г.) вам больше не нужно делать 2 команды для добавления веток и затем для добавления тегов:
Теперь вы можете попробовать при нажатии новых коммитов:
Это не вытеснит все локальные теги, только аннотированные, на которые ссылаются коммиты, которые передаются с помощью
git push
.Это было введено в фиксации c2aba15 с помощью Junio C Hamano (
gitster
) :Конфиг
push.followTags
позволяет включить--follow-tags
по умолчанию (Git 2.4.1+, Q2 2015). Смотрите " Push git commits & tags одновременно "источник
git push --follow-tags
не толкает больше, чемgit push
Что я обычно делаю, это:
Это означает, что это подталкивает каждую ветку, которая уже есть, плюс теги. Это не заставляет толкать, и это не толкает ветку, которую вы не нажимали вручную.
источник
И если вы хотите принудительно извлечь все теги, вы можете установить его в конфигурации:
Из документов:
источник