Question Comment faire pour pousser une étiquette 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

git tag mytag master

Quand je cours git tag sur mon ordinateur portable l'étiquette mytag est montré. Je veux ensuite pousser cela vers le dépôt distant, donc j'ai cette balise sur tous mes clients, donc je cours git push mais j'ai reçu le message:

tout est à jour

Et si je vais sur mon bureau et que je cours git pull et alors git tag aucun tag n'est affiché.

J'ai également essayé de faire un changement mineur sur un fichier dans le projet, puis le pousser vers 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 lors de l'exécution git tag sur mon ordinateur de bureau.

Comment puis-je transférer mon tag dans le référentiel distant pour que tous les ordinateurs clients puissent le voir?


1543
2018-03-04 15:37


origine


Réponses:


Pour pousser un unique marque:

git push origin <tag_name>

Et la commande suivante devrait pousser tout tags (non recommandé):

git push --tags

2458
2018-03-04 15:40



git push --follow-tags

C'est une option saine présentée dans Git 1.8.3:

git push --follow-tags

Il pousse à la fois les validations et uniquement les balises qui sont à la fois:

  • annoté
  • accessible (un ancêtre) à partir des commits poussés

C'est sain parce que:

  • vous ne devez pousser que des balises annotées vers la télécommande et conserver des balises légères pour le développement local afin d'éviter les conflits de tag. Voir également: Quelle est la différence entre un tag annoté et non annoté?
  • il ne va pas pousser les étiquettes annotées sur les branches non apparentées

C'est pour ces raisons que --tags devrait être évité.

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

git config --global push.followTags true

695
2017-10-18 09:12



Pour pousser spécifique, un tag suit git push origin tag_name


228
2017-10-24 14:43



Pour développer La réponse de Trevor, vous pouvez pousser une seule étiquette ou tout de votre tags à la fois.

Pousser une seule étiquette

git push <remote> <tag>

Ceci est un résumé de documentation pertinente cela explique cela (certains options de commande omises pour la brièveté):

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

<refspec>...

Le format d'un <refspec> le paramètre est ... l'adresse source <src>,   suivi d'un deux-points :, suivi de l'adresse de destination <dst>...

le <dst> indique quelle ref sur le côté distant est mis à jour avec cette   pousser ... Si :<dst> est omis, la même référence que <src> sera   actualisé…

marque <tag> signifie le même que refs/tags/<tag>:refs/tags/<tag>.

Poussez tous vos tags à la fois

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

Voici un résumé de la documentation pertinente (certaines options de commande omis pour la brièveté):

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

--tags

Toutes les références sous refs/tags sont poussés, en plus de refspecs explicitement   répertorié sur la ligne de commande.


74
2018-04-22 10:52



Vous pouvez pousser les tags comme ça git push --tags


41
2018-03-04 15:40



Les balises ne sont pas envoyées au référentiel 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 en même temps en utilisant la commande ci-dessous:

git push origin --tags

Voici quelques ressources pour tous les détails sur le marquage git:

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

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


38
2018-01-10 05:57



Vous pouvez pousser vos tags locaux simplement git push --tags commander.

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

13
2017-11-25 08:15



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
2018-04-18 18:24



Merci de ne pas l'utiliser, si vous ne cherchez qu'une commande car l'objectif principal de cette solution est de vous présenter un moyen de solutions!

Pour rendre la vie plus facile - j'ai écrit un script git-triche-feuille , qui contient des commandes utiles, notamment les suivantes:

./git_commands.sh -push_tag TAG_NAME


0
2018-06-19 16:07



Si vous travaillez dans une succursale:

git push --tags origin branch_name

-7
2018-04-26 15:39