Comment pousser une balise vers un dépôt distant en utilisant Git?

j'ai cloné un dépôt Git distant sur mon ordinateur portable, puis j'ai voulu ajouter une balise donc j'ai couru

git tag mytag master

quand j'exécute git tag sur mon ordinateur portable l'étiquette mytag est affichée. Je veux alors pousser ceci au dépôt distant donc j'ai cette étiquette sur tous mes clients, donc j'exécute git push mais j'ai eu le message:

Everything up-to-date

Et si je vais à mon bureau et exécuter git pull et ensuite git tag aucune étiquette n'est affichée.

j'ai aussi essayé de faire une modification mineure sur un fichier du projet, puis de le pousser sur le serveur. Après cela, je pourrais tirer le changement du serveur à mon ordinateur de bureau, mais il n'y a toujours pas de balise quand on exécute git tag sur mon ordinateur de bureau.

Comment puis-je pousser mon étiquette vers le dépôt distant pour que tous les ordinateurs clients puissent la voir?

1615

10 réponses

Pour pousser un unique tag:

git push origin <tag_name>

et la commande suivante devrait appuyer sur toutes les étiquettes (non recommandé):

git push --tags
2594
répondu Trevor 2016-10-14 11:23:38

git push --follow-tags

il s'agit d'une option saine introduite dans le Git 1.8.3:

git push --follow-tags

Il repousse à la fois s'engage et seules les variables qui sont à la fois:

  • annoté
  • accessible (un ancêtre) de la poussée commet

c'est sain parce que:

c'est pour ces raisons qu'il faut éviter --tags .

Git 2.4 a ajouté l'option push.followTags pour activer ce drapeau par défaut qui vous pouvez définir avec:

git config --global push.followTags true
717

pour pousser spécifique, une étiquette font suite git push origin tag_name

231
répondu solgar 2012-10-24 14:43:31

pour développer sur réponse de Trevor , vous pouvez pousser une seule étiquette ou la totalité de votre tags à la fois.

Pousser d'une Seule Balise

git push <remote> <tag>

il s'agit d'un résumé de la documentation pertinente qui explique ceci (certains options de commande omises pour la brièveté):

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

<refspec>...

le format d'un paramètre <refspec> est ... la source ref <src> , suivi d'un : , suivi de la destination réf <dst> ...

le <dst> indique quel ref du côté distant est mis à jour avec ce pousser...si :<dst> est omis, le même ref que <src> sera mis à jour...

étiquette <tag> signifie la même chose que refs/tags/<tag>:refs/tags/<tag> .

Pousser Tous Vos Tags à la Fois

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

Voici un résumé de la documentation pertinente (quelques options de commande omis par souci de concision):

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

--tags

toutes les références sous refs/tags sont poussées, en plus des références explicitement listés sur la ligne de commande.

76
répondu Community 2017-05-23 12:10:44

vous pouvez pousser les étiquettes comme ceci git push --tags

41
répondu Fernando Diaz Garrido 2011-03-04 15:40:47
Les étiquettes

ne sont pas envoyées au dépôt distant par la commande git push. Nous devons envoyer explicitement ces balises au serveur distant en utilisant la commande suivante:

git push origin <tagname>

nous pouvons pousser toutes les étiquettes à la fois en utilisant la commande ci-dessous:

git push origin --tags

voici quelques ressources pour des détails complets sur le marquage git:

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

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

39
répondu Ashutosh Meher 2016-01-10 05:57:19

vous pouvez pousser vos étiquettes locales simplement par la commande 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
répondu Sajib Khan 2017-06-15 20:53:27

j'utilise git push <remote-name> tag <tag-name> pour m'assurer que je pousse une étiquette. Je l'utilise comme: git push origin tag v1.0.1 . Ce modèle est basé sur la documentation ( man git-push ):

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

Veuillez ne pas l'utiliser, si vous cherchez seulement pour une commande parce que l'objectif principal de cette solution est de vous présenter une façon de solutions !

Pour rendre la vie plus facile - j'ai écrit un script git-cheat-sheet ,qui contient quelques commandes utiles , y compris ce qui suit:

. /git_commands.sh -push_tag TAG_NAME

0
répondu Monir 2018-06-27 08:50:32

si vous travaillez dans une succursale:

git push --tags origin branch_name
-7
répondu Matias 2012-04-26 15:39:52