Вопрос: Как нажать тег на удаленный репозиторий с помощью Git?


Я клонировал удаленный репозиторий Git для своего ноутбука, тогда мне захотелось добавить тег, чтобы я побежал

git tag mytag master

Когда я бегу git tagна моем ноутбуке тег mytagПоказано. Затем я хочу нажать это в удаленный репозиторий, чтобы у меня был этот тег для всех моих клиентов, поэтому я запускаю git pushно я получил сообщение:

Все актуальное

И если я пойду на свой рабочий стол и запусти git pullа потом git tagне отображаются теги.

Я также попытался внести незначительные изменения в файл в проекте, а затем направить его на сервер. После этого я мог бы вытащить изменения с сервера на мой настольный компьютер, но при запуске git tagна моем настольном компьютере.

Как я могу нажать мой тег в удаленный репозиторий, чтобы все клиентские компьютеры могли его увидеть?


1497


источник


Ответы:


Чтобы подтолкнуть Один тег:

git push origin <tag_name>

И следующая команда должна нажать все теги (не рекомендуется):

git push --tags

2369



git push --follow-tags

Это разумный вариант, введенный в Git 1.8.3:

git push --follow-tags

Он подталкивает как коммиты, так и теги, которые оба:

  • аннотированный
  • достижимый (предок) от подталкиваемых коммитов

Это разумно, потому что:

Именно по этим причинам --tagsнеобходимо избегать.

Git 2.4 добавил push.followTagsвозможность включить этот флаг по умолчанию, который вы можете установить с помощью:

git config --global push.followTags true

677



Чтобы указать конкретный, один тег git push origin tag_name


228



To expand on Trevor's answer, you can push a single tag or all of your tags at once.

Push a Single Tag

git push <remote> <tag>

This is a summary of the relevant documentation that explains this (some command options omitted for brevity):

git push [[<repository> [<refspec>…]]

<refspec>...

The format of a <refspec> parameter is…the source ref <src>, followed by a colon :, followed by the destination ref <dst>

The <dst> tells which ref on the remote side is updated with this push…If :<dst> is omitted, the same ref as <src> will be updated…

tag <tag> means the same as refs/tags/<tag>:refs/tags/<tag>.

Push All of Your Tags at Once

git push --tags <remote>
# Or
git push <remote> --tags

Here is a summary of the relevant documentation (some command options omitted for brevity):

git push [--all | --mirror | --tags] [<repository> [<refspec>…]]

--tags

All refs under refs/tags are pushed, in addition to refspecs explicitly listed on the command line.


72



You can push the tags like this git push --tags


40



Tags are not sent to the remote repository by the git push command. We need to explicitly send these tags to the remote server by using the following command:

git push origin <tagname>

We can push all the tags at once by using the below command:

git push origin --tags

Here are some resources for complete details on git tagging:

http://www.cubearticle.com/articles/more/git/git-tag

http://wptheming.com/2011/04/add-remove-github-tags


38



You can push your local tags by simply git push --tags command.

$ git tag                            # see tag lists
$ git push origin <tag-name>         # push a single tag
$ git push --tags                    # push all local tags 

13



I am using git push <remote-name> tag <tag-name> to ensure that I am pushing a tag. I use it like: git push origin tag v1.0.1. This pattern is based upon the documentation (man git-push):

OPTIONS
   ...
   <refspec>...
       ...
       tag <tag> means the same as refs/tags/<tag>:refs/tags/<tag>.

0



To make life easier - i wrote a script git-cheat-sheet ,that contains some useful commands , including the following:

./git_commands.sh -push_tag TAG_NAME


0



If you are working in a branch:

git push --tags origin branch_name

-7