216 votes

Comment pousser une balise Git d’une branche à l’aide d’une spécification ?

Je veux à force de pousser, par exemple, mon tag 1.0.0 de ma télécommande master de la branche.

Je suis en train de faire le suivant:

git push production +1.0.0:master

Je veux de la force de la repousser, parce que tout ce qui m'intéresse, c'est que le code à l'intérieur de l' 1.0.0 balise est poussé à l' master branche sur le dépôt distant.

Ce que je fais mal?

Mise à jour #1

Quand j'ai SSH sur mon serveur où mon Git repository et exécuter git branch -l, je ne vois pas l' master de la branche répertoriés.

Mise à jour #2

Après l'exécution de l' git tag -l depuis l'intérieur de la distance dépôt Git, je vois qu' master est répertorié, cela signifie que lorsque j'ai couru le suivant:

git push production 1.0.0:master

Il poussa la balise et créé une balise nommée master plutôt que d' une nouvelle branche.

Je veux essentiellement pousser le contenu de la balise 1.0.0 dans la master direction générale de la télécommande dépôt Git.

469voto

bstpierre Points 12616
git push --tags production

61voto

neoneye Points 11545

J’ai créer le tag comme ça et puis j’ai placer sur GitHub :

59voto

Chris Johnsen Points 50064

C'est probablement la rupture à cause 1.0.0 est annotée de la balise. Peut-être que vous avez vu le message d'erreur suivant:

erreur: Essaie d'écrire des non-objet commit de la branche refs/heads/master

Annoté balises ont leur propre type distinct de l'objet qui pointe vers le tagged objet commit. Les Branches ne peut pas utilement le point de marquer les objets, seulement commettre des objets. Vous avez besoin de "peler" la annoté tag à commettre l'objet et le pousser à la place.

git push production +1.0.0^{commit}:master
git push production +1.0.0~0:master          # shorthand

Il existe une autre syntaxe qui fonctionne également en ce cas, mais il signifie quelque chose de légèrement différent si la balise points de l'objet à autre chose qu'à un commit (ou une balise objet qui pointe vers (une balise object qui pointe vers un ...) d'un commit).

git push production +1.0.0^{}:master

Ces tag peeling syntaxes sont décrites dans git-rev-parse(1) en vertu de la Spécification de Révisions.

10voto

koppor Points 2066

Pour pousser une seule balise :``

Par exemple, `` . Tags ne sont pas liés aux branches, ils s’engagent à s’engage.

Lorsque vous voulez avoir le contenu de la balise dans la branche master, faire localement sur votre machine. Je suppose que vous a continué à développer dans votre branche locale master. Puis juste un `` devrait suffire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X