1519 votes

Comportement par défaut de "git push" sans une direction spécifiée

J'utilise la commande suivante pour le pousser à ma branche à distance:

git push origin sandbox

Si je dis

git push origin

ne fait que pousser des changements dans mes autres branches trop, ou il ne fait que mettre à jour ma branche? J'ai trois branches: master, production et sandbox.

L' git push documentation n'est pas très clair à ce sujet, donc j'aimerais clarifier ce pour de bon.

Les succursales et les télécommandes procédez de la manière suivante git push des commandes de mise à jour exactement?

git push 
git push origin

origin ci-dessus est une télécommande.

Je comprends qu' git push [remote] [branch] de pousser une seule branche pour la télécommande.

1774voto

Brian L Points 6585

Vous pouvez contrôler le comportement par défaut en configuration push.par défaut dans votre git config. À partir de git-config(1) de la documentation:

push.default

Définit l'action git push doit prendre si aucune refspec est donné sur la ligne de commande, pas de refspec est configuré dans la distance, et pas de refspec est implicite par l'une des options sur la ligne de commande. Les valeurs possibles sont:

  • nothing: ne poussez pas rien

  • matching: pousser tous les branches

    Toutes les branches ayant le même nom dans les deux extrémités sont considérés comme de la correspondance.

    C'est la valeur par défaut dans Git 1.x.

  • upstream: appuyez sur la branche courante à son amont de la branche (tracking est obsolète synonyme d'amont)

  • current: appuyez sur la branche courante à une branche du même nom

  • simple: (nouveau dépôt Git 1.7.11) comme en amont, mais refuse de pousser si, en amont de la direction générale de nom est différent du local

    C'est l'option la plus sûre et est bien adapté pour les débutants.

    Cela devient la valeur par défaut dans Git 2.0.

Le simple, actuelle et en amont modes sont pour ceux qui veulent pousser d'une seule branche après le travail de finition, même lorsque les autres branches ne sont pas encore prêt à être poussé

Exemple de ligne de commande:

git config --global push.default current

239voto

Christoffer Points 2179

Vous pouvez configurer le comportement par défaut pour votre git push.par défaut

git config push.default current

ou si vous avez beaucoup de dépôts et veux le même pour tous alors

git config --global push.default current

Le courant dans cette configuration signifie que par défaut, vous sera seulement pousser la branche courante lorsque vous effectuez la commande git push

D'autres options sont les suivantes:

  • de rien : Ne poussez pas rien
  • correspondant : Pousser tous les branches (par défaut)
  • suivi : appuyez sur la branche courante pour ce qu'il est suivi
  • actuelle : appuyez sur la branche courante

MISE À JOUR - NOUVELLE FAÇON DE FAIRE DE CETTE

Comme de Git 1.7.11 effectuer les opérations suivantes:

git config --global push.default simple

C'est un nouveau paramètre introduit, qui fonctionne de la même manière que le courant, et sera par défaut à git de v 2.0 selon les rumeurs

209voto

baudtack Points 8259

git push origin va pousser tous les changements sur les sections locales qui ont des branches distantes à l' origin pour git push

Fonctionne comme git push <remote><remote> , est actuellement la direction générale de la télécommande (ou de l'origine, si la distance est configuré pour la branche courante).

À partir de la section Exemples de l' git-push page de man

52voto

neoneye Points 11545

J'ai juste commis mon code à une branche et l'a poussé à github, comme ceci:

git branch SimonLowMemoryExperiments
git checkout SimonLowMemoryExperiments
git add .
git commit -a -m "Lots of experimentation with identifying the memory problems"
git push origin SimonLowMemoryExperiments

28voto

chapagain Points 6536

Voici un outil très pratique et utile d'informations sur la commande Git Push: Git Push: Juste la Pointe

L'utilisation la plus courante de la commande git push est de pousser vos modifications locales à votre public en amont du référentiel. En supposant que l'amont est une télécommande nommé "origine" (la valeur par défaut nom à distance, si votre dépôt est un clone) et la direction générale pour être mis à jour pour/est nommé "maître" (la valeur par défaut nom de la branche), cela se fait avec: git push origin master

git push origin va pousser les modifications de toutes les branches locales de l'appariement entre les branches de l'origine de la télécommande.

git push origin master va pousser les changements de la maîtrise locale de la branche de la télécommande branche master.

git push origin master:staging va pousser les changements de la maîtrise locale de la branche de la télécommande mise en scène de la succursale si elle existe.

Source: Git Push: Juste la Pointe

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