505 votes

Push git commits & tags simultanément

Je suis conscient de la raison pour laquelle git push --tags est une opération distincte dans le vieux git push . Pousser les tags devrait être un choix conscient puisque vous ne voulez pas forcément en pousser un. C'est très bien. Mais y a-t-il un moyen de pousser les deux ensemble? (Mis à part git push && git push --tags .)

692voto

VonC Points 414372

Mise À Jour Avril 2013

Depuis git 1.8.3 (avril 22, 2013), vous n'aurez plus à faire 2 commandes à pousser des branches, et puis pour pousser les balises:

Le nouveau "--follow-tags" option indique "git push" pour pousser pertinentes annoté des balises lors de la poussée branches.

Vous pouvez maintenant essayer, lors de la poussée de nouvelles s'engage à:

git push --follow-tags

Pour ne pas les pousser tous les locaux des balises bien que, seul celui qui est référencé par les commits qui sont poussés avec l' git push.


(Réponse originale à cette question en septembre 2010)

L'option nucléaire serait git push --mirror, ce qui va pousser tous les refs en vertu de l' refs/.

Vous pouvez également pousser juste un tag avec votre succursale de s'engager:

git push origin : v1.0.0 

Vous pouvez combiner l' --tags option avec un refspec comme:

git push origin --tags :

(depuis --tags signifie que Toutes les refs en vertu de l' refs/tags sont poussés, en plus de refspecs explicitement listés sur la ligne de commande)


Vous avez également cette entrée "Pousser des branches et des étiquettes avec un seul "git push" invocation"

Un conseil pratique venait d'être publié à l' Git liste de diffusion par Zoltán Füzesi:

J'utilise .git/config pour résoudre ce problème:

[remote "origin"]
    url = ...
    fetch = +refs/heads/*:refs/remotes/origin/*
    push = +refs/heads/*
    push = +refs/tags/*

Avec ces lignes ajoutées git push origin de charger tous vos branches et de tags. Si vous voulez télécharger seulement certains d'entre eux, vous pouvez les énumérer.

N'ai pas essayé moi-même encore, mais on dirait qu'il pourrait être utile jusqu'à ce qu'une autre façon de pousser les branches et les tags dans le même temps est ajouté à la commande git push.
D'autre part, je ne me dérange pas de taper:

$ git push && git push --tags

Méfiez-vous, comme commenté par Aseem Kishore

push = +refs/heads/* sera force de pousse toutes vos succursales.

Ce bit moi tout à l'heure, donc, pour info.

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