web-dev-qa-db-fra.com

Comment poussez-vous une seule branche Git (et pas d'autres branches)?

Je travaille sur un dépôt git local. Il y a deux branches, master et feature_x.

Je souhaite transmettre feature_x au référentiel distant, mais je ne souhaite pas appliquer les modifications à la branche master.

Est-ce qu'un git Push Origin feature_x de ma branche feature_x (feature_x existe déjà à distance)?

Je ne veux pas tester cela sur ma boîte, car je ne peux pas pousser pour maîtriser pour le moment.

227
Rafael Mueller

oui, il suffit de faire ce qui suit

git checkout feature_x
git Push Origin feature_x
354
cpjolicoeur

Par défaut, git Push met à jour toutes les branches distantes. Mais vous pouvez configurer git pour ne mettre à jour que la branche actuelle en amont.

git config Push.default upstream

Cela signifie que git ne mettra à jour que la branche actuelle (extraite) lorsque vous ferez git Push.

Les autres options valides sont:

  • nothing: Ne rien pousser (erreur sur) sauf si un refspec est donné explicitement . Ceci est principalement destiné aux personnes qui veulent éviter les erreurs en étant toujours explicites.
  • matching: Poussez toutes les branches ayant le même nom aux deux extrémités. (option par défaut avant la version 1.7.11)
  • upstream: Poussez la branche actuelle vers sa branche amont. Ce mode n’a de sens que si vous accédez au même référentiel que celui que vous utiliseriez normalement (à savoir un flux de travail central ). Pas besoin d'avoir le même nom pour les branches locale et distante.
  • tracking: Obsolète, utilisez plutôt upstream.
  • current: Poussez la branche actuelle sur la branche distante du même nom du côté destinataire. Fonctionne dans les flux de travail centraux et non centraux.
  • simple: [disponible depuis la version 1.7.11] dans le flux de travail centralisé, fonctionne comme upstream avec une sécurité accrue pour refuser de Push si le nom de la branche en amont est différent de celui local. Lorsque vous appuyez sur une télécommande différente de celle sur laquelle vous tirez normalement, utilisez current. Ceci est l'option la plus sûre et convient aux débutants. Ce mode est devenu le mode par défaut dans Git 2.0.
67
Karthik Bose

Mise à jour mineure au dessus de réponse de Karthik Bose - vous pouvez configurer git globalement, de manière à ce que tous vos espaces de travail se comportent de la manière suivante:

git config --global Push.default upstream
6
Bhaskar