J'ai cloné un référentiel Git distant sur mon ordinateur portable, puis je voulais ajouter une balise
git tag mytag master
Lorsque je lance git tag
sur mon ordinateur portable, la balise mytag
est affichée. Je souhaite ensuite envoyer ceci au référentiel distant pour que cette balise soit visible sur tous mes clients. Je lance donc git Push
mais j'ai le message suivant:
Tout est à jour
Et si je vais sur mon bureau et lancez git pull
puis git tag
aucune balise n'est affichée.
J'ai également essayé d'apporter une modification mineure à un fichier du projet, puis de le transférer au serveur. Après cela, je pouvais extraire la modification du serveur vers mon ordinateur de bureau, mais il n’existait toujours pas de balise lors de l’exécution de git tag
sur mon ordinateur de bureau.
Comment puis-je envoyer ma balise vers le référentiel distant afin que tous les ordinateurs clients puissent la voir?
git Push --follow-tags
Ceci est une option saine introduite dans Git 1.8.3:
_git Push --follow-tags
_
Il pousse les deux commits et uniquement les balises qui sont les deux:
Ceci est sain parce que:
C'est pour ces raisons que _--tags
_ devrait être évité.
Git 2.4 a ajouté l'option _Push.followTags
_ pour activer cet indicateur par défaut que vous pouvez définir avec:
_git config --global Push.followTags true
_
Pour pousser un single tag:
git Push Origin <tag_name>
Et la commande suivante devrait pousser tous tags (non recommandé):
git Push --tags
Pour pousser spécifique, une balise faire suivant git Push Origin tag_name
Pour développer réponse de Trevor , vous pouvez utiliser un seul tag ou tous vos tags en même temps.
git Push <remote> <tag>
Ceci est un résumé de documentation pertinente qui explique cela (certaines options de commande sont omises pour des raisons de brièveté):
git Push [[<repository> [<refspec>…]] <refspec>...
Le format d'un paramètre
<refspec>
est… la référence de source<src>
, suivi de deux points:
, suivi de la référence de destination<dst>
…Le
<dst>
indique quelle référence du côté distant est mise à jour avec ce Push… Si:<dst>
est omis, la même référence que<src>
sera mise à jour…balise
<tag>
signifie la même chose querefs/tags/<tag>:refs/tags/<tag>
.
git Push --tags <remote>
# Or
git Push <remote> --tags
Voici un résumé de documentation pertinente (certaines options de commande sont omises pour des raisons de brièveté):
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 spécifiées explicitement sur la ligne de commande.
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 à l'aide de la commande suivante:
git Push Origin <tagname>
Nous pouvons pousser tous les tags à la fois en utilisant la commande ci-dessous:
git Push Origin --tags
Voici quelques ressources pour des détails complets sur le marquage git:
Vous pouvez pousser les balises comme ceci git Push --tags
Vous pouvez pousser tous les tags locaux en utilisant simplement 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
J'utilise git Push <remote-name> tag <tag-name>
pour m'assurer que je pousse un tag. 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>.