Я клонировал удаленный репозиторий Git для своего ноутбука, затем я хотел добавить тег, чтобы запустить
git tag mytag master
Когда я запускаю git tag
на моем ноутбуке, отображается тег mytag
. Затем я хочу нажать это в удаленный репозиторий, поэтому у меня есть этот тег для всех моих клиентов, поэтому я запускаю git push
, но я получил сообщение:
Все обновленные
И если я зашел на свой рабочий стол и запустил git pull
, а затем git tag
, теги не показываются.
Я также попытался внести незначительные изменения в файл в проекте, а затем направить его на сервер. После этого я мог бы вытащить изменения с сервера на настольный компьютер, но при работе с git tag
на моем настольном компьютере по-прежнему нет тега.
Как я могу нажать мой тег в удаленный репозиторий, чтобы все клиентские компьютеры могли его видеть?
Чтобы нажать тег одиночный:
git push origin <tag_name>
И следующая команда должна нажать теги all (не рекомендуется):
git push --tags
- follow-tags - это разумная опция, введенная в Git 1.8.3:
git push --follow-tags
Он толкает как коммиты, так и теги, которые оба:
Это разумно, потому что:
Именно по этим причинам следует избегать --tags
.
Git 2.4 добавил параметр push.followTags
, чтобы по умолчанию включить этот флаг, который вы можете установить с помощью:
git config --global push.followTags true
Чтобы указать конкретный, один тег следует следующему
git push origin tag_name
Чтобы расширить Тревор ответ, вы можете нажать один тег или все ваши теги сразу.
git push <remote> <tag>
Это сводка соответствующей документации, которая объясняет это (некоторые опции команды опущены для краткости):
git push [[<repository> [<refspec>…]] <refspec>...
Формат параметра
<refspec>
- это & hellip; источник ref<src>
, за которым следует двоеточие:
, за которым следует пункт назначения ref<dst>
& hellip;
<dst>
указывает, какая ссылка на удаленную сторону обновляется с помощью этого push & hellip; Если:<dst>
опущен, то тот же ref, что и<src>
, будет обновление & hellip;тег
<tag>
означает то же самое, что иrefs/tags/<tag>:refs/tags/<tag>
.
git push --tags <remote>
# Or
git push <remote> --tags
Ниже приведена сводка соответствующей документации (некоторые параметры команды опущен для краткости):
git push [--all | --mirror | --tags] [<repository> [<refspec>…]] --tags
Все ссылки ref под
refs/tags
толкаются, в дополнение к refspecs явно перечисленные в командной строке.
tag
ключевого слова. например, git push origin tag funny-tag-1
.
git push origin my-tag
(я только что попробовал!)
Вы можете нажимать теги, подобные этому git push --tags
Теги не отправляются в удаленный репозиторий командой git push. Нам нужно явно отправить эти теги на удаленный сервер, используя следующую команду:
git push origin <tagname>
Мы можем нажать все теги сразу, используя следующую команду:
git push origin --tags
Вот некоторые ресурсы для полной информации о теге git:
Вы можете нажимать свои локальные теги просто командой git push --tags
.
$ git tag # see tag lists
$ git push origin <tag-name> # push a single tag
$ git push --tags # push all local tags
Если вы работаете в ветке:
git push --tags origin branch_name
git push --tags
как очень трудно избавиться от плохих тегов, когда ваши коллеги обучены нажимать на все теги, поскольку люди продолжают нажимать старые плохие теги, которые у них есть. локально каждый раз, когда они хотят нажать новый тег. Из-за этого я буду только рекомендовать кому-либо использоватьgit push origin <tag_name>
сейчас.git push origin <tag_name> --force
перемещенный тег:git push origin <tag_name> --force