Como enviar uma marca para um repositório remoto usando o Git?

Clonei um repositório remoto de Git para o meu portátil, depois quis adicionar uma etiqueta, por isso corri.
git tag mytag master

quando corro git tag no meu portátil, aparece a etiqueta mytag. Eu então quero empurrar isso para o repositório remoto para que eu tenha esta etiqueta em todos os meus clientes, então eu corro git push mas eu recebi a mensagem:

tudo actualizado

e se eu for para o meu ecrã e executar git pull e depois git tag não aparecem marcas.

Também tentei fazer uma pequena alteração num ficheiro em o projeto, em seguida, empurrá-lo para o servidor. Depois disso, eu poderia puxar a mudança do servidor para o Meu Computador Desktop, mas ainda não há nenhuma tag ao executar git tag no meu computador desktop.

Como posso levar a minha etiqueta para o repositório remoto para que todos os computadores possam vê-la?

10 answers

Para empurrar uma marca única :

git push origin <tag_name>

E o seguinte comando deve empurrar todas as marcas (não recomendado):

git push --tags
 2594
Author: Trevor, 2016-10-14 11:23:38

git push --follow-tags

Esta é uma opção sà introduzida no Git 1.8.3:

git push --follow-tags

Pressiona tanto os commits como apenas as etiquetas que são ambas:

  • anotado
  • alcançável (um ancestral) dos commits empurrados

Isto é são porque:

É por essas razões que --tags deve ser evitado.

O Git 2. 4 adicionou a opção push.followTags para activar essa opção por omissão, a qual poderá definir com:

git config --global push.followTags true
 717

Para empurrar especificamente, uma marca faça o seguinte git push origin tag_name

 231
Author: solgar, 2012-10-24 14:43:31

Para expandir a resposta de Trevor , Você pode empurrar uma única etiqueta ou toda a sua etiquetas de imediato.

Empurre uma única marca

git push <remote> <tag>

Este é um resumo da documentação relevante que explica isto (alguns opções de comandos omitidas para a brevidade):

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

<refspec>...

O formato de um parâmetro <refspec> é ... o ref-fonte <src>, seguido de dois pontos :, seguido do ref de destino<dst>...

O <dst> Diz qual ref No remoto o lado é actualizado com este empurrar ... se :<dst> for omitido, o mesmo ref que <src> será actualizado ...

Tag <tag> significa o mesmo que refs/tags/<tag>:refs/tags/<tag>.

Pressione todas as suas etiquetas de uma vez

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

Aqui está um resumo da documentação relevante (algumas opções de comandos omitido por brevidade):

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

--tags

Todos os árbitros abaixo de refs/tags são empurrados, para além de especificações explicitamente está na linha de comando.

 76
Author: Community, 2017-05-23 12:10:44
Podes carregar as etiquetas assim.git push --tags
 41
Author: Fernando Diaz Garrido, 2011-03-04 15:40:47

As marcas não são enviadas para o repositório remoto pelo comando git push. Precisamos enviar explicitamente estas etiquetas para o servidor remoto usando o seguinte comando:

git push origin <tagname>

Podemos carregar todas as etiquetas de uma vez usando o comando abaixo:

git push origin --tags

Aqui estão alguns recursos para detalhes completos sobre a marcação git:

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

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

 39
Author: Ashutosh Meher, 2016-01-10 05:57:19

Pode carregar nas suas marcas locais apenas com o comando git push --tags.

$ git tag                            # see tag lists
$ git push origin <tag-name>         # push a single tag
$ git push --tags                    # push all local tags 
 12
Author: Sajib Khan, 2017-06-15 20:53:27

Estou a usar {[[1]} para garantir que estou a empurrar uma etiqueta. Eu uso-o como: git push origin tag v1.0.1 Este padrão baseia-se na documentação (man git-push):

OPTIONS
   ...
   <refspec>...
       ...
       tag <tag> means the same as refs/tags/<tag>:refs/tags/<tag>.
 2
Author: Carl G, 2018-04-18 18:24:16

Por favor, não use, se você está apenas procurando um comando, porque a principal intenção desta solução é apresentar-lhe uma forma de soluções !

Para facilitar a vida-eu escrevi um script git-cheat-sheet , que contém alguns comandos úteis, incluindo o seguinte:

./git_commands.sh -push_tag TAG_NAME

 0
Author: Monir, 2018-06-27 08:50:32

Se está a trabalhar num ramo:

git push --tags origin branch_name
 -7
Author: Matias, 2012-04-26 15:39:52