87 votes

Message d'erreur déroutant de git

J'ai reçu ce message de Git:

Vous avez demandé à extraire de 'l'origine' à distance, mais vous n'avez pas spécifié de branche. Comme il ne s'agit pas de la télécommande configurée par défaut pour votre branche actuelle, vous devez spécifier une branche sur la ligne de commande.

Quelqu'un peut-il l'expliquer? et plus important comment le réparer?

84voto

p4bl0 Points 2583

Vous devez indiquer à git quelle branche vous souhaitez extraire du dépôt à distance "d'origine".

Je suppose que vous voulez la branche par défaut (maître), donc git pull origin master devrait régler votre problème.

Voir git help branch , git help pull et git help fetch pour plus d'informations.

82voto

Aristotle Pagaltzis Points 43253

Pour la fixer, en supposant que vous êtes sur l' master de la branche et de tirer l' master direction générale de l' origin à distance, à nouveau assez de versions Git (1.8 ou plus récent):

git branch -u origin/master master

(Par analogie pour les autres branches et/ou télécommandes.)

Si vous pouvez combiner cela avec un push, c'est encore plus court:

git push -u origin master

Par la suite, un simple git pull/git push à faire ce que vous attendez.


Au cours de l'Git 1.7 série, git branch n'ont pas l' -u switch (seulement git push a), et au lieu de cela vous avez à utiliser le beaucoup plus --set-upstream:

git branch --set-upstream master origin/master

Remarque l'inversion des arguments par rapport à l' -u. J'ai tâtonné cet ordre plus d'une fois.


L'ensemble de ces, par ailleurs, sont des abréviations pour faire la suite, vous pouvez toujours le faire de manière explicite:

git config branch.master.remote origin
git config branch.master.merge refs/heads/master

Avant de 1.7, vous avez eu à faire de cette façon.

3voto

Tomek Szpakowicz Points 5340

Message dit exactement ce qu'elle est. Votre branche courante n'est pas associé avec (pas de suivi) une des succursales à l'origine. Donc, git ne sais pas quoi en tirer.

Que faire? Ça dépend...

Dans la plupart des situation habituelle vous travaillez quelques succursale locale xyz qui ramifiée à partir de maître qui est cloné à partir de l'origine'maître. La manière habituelle de le résoudre est de changer de maître et tirez-le pour le synchroniser avec d' origine , et de revenir ensuite à xyz et rebase master.

Mais dans votre situation, vous voulez peut-être faire quelque chose d'autre. Nous ne pouvons pas le connaître, sans connaître les détails de vos branches et les télécommandes et comment vous avez l'intention de les utiliser.

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