Essayez ceci dans votre alice
(avant de le pousser) :
git config push.default tracking
Ou bien, configurez-le par défaut pour votre utilisateur avec git config --global …
.
git push
s'applique par défaut à la origin
(qui est normalement le référentiel à partir duquel vous avez cloné le référentiel courant), mais il ne pousse pas par défaut la branche courante - il pousse par défaut seulement les branches qui existent à la fois dans le référentiel source et le référentiel de destination.
El push.default
(voir git-config(1) ) contrôle ce que git push
sera poussé lorsqu'il ne reçoit pas d'arguments "refspec" (c'est-à-dire quelque chose après un nom de référentiel). La valeur par défaut donne le comportement décrit ci-dessus.
Voici les valeurs possibles pour push.default
:
-
nothing
Cela vous oblige à fournir une "refspec".
-
matching
(par défaut)
Cela pousse todo les branches qui existent à la fois dans le référentiel source et le référentiel de destination.
Ceci est complètement indépendant de la branche qui est actuellement extraite.
-
upstream
o tracking
(Les deux valeurs signifient la même chose. La dernière valeur a été dépréciée pour éviter toute confusion avec les branches de "suivi à distance". La première a été introduite dans la version 1.7.4.2, vous devrez donc utiliser la seconde si vous utilisez Git 1.7.3.1).
Ils poussent la branche courante vers la branche spécifiée par sa configuration "amont".
-
current
Ceci pousse la branche courante vers la branche du même nom dans le référentiel de destination.
Ces deux derniers sont finalement les mêmes pour les cas les plus courants (par exemple, le travail sur des sites locaux). maître qui utilise origine/maître comme son amont), mais ils sont différents lorsque la branche locale a un nom différent de sa branche "amont" :
git checkout master
# hack, commit, hack, commit
# bug report comes in, we want a fix on master without the above commits
git checkout -b quickfix origin/master # "upstream" is master on origin
# fix, commit
git push
Avec push.default
égal à upstream
(ou tracking
), l'impulsion serait donnée à origin
's maître branche. Lorsqu'il est égal à current
le coup de pouce irait à origin
's quickfix branche.
El matching
mettra à jour le paramètre bare
's maître dans votre scénario une fois qu'il a été établi. Pour l'établir, vous pouvez utiliser git push origin master
une fois.
Cependant, le upstream
(ou peut-être current
) semble mieux correspondre à ce que vous attendez, vous pouvez donc l'essayer :
# try it once (in Git 1.7.2 and later)
git -c push.default=upstream push
# configure it for only this repository
git config push.default upstream
# configure it for all repositories that do not override it themselves
git config --global push.default upstream
(Encore une fois, si vous utilisez toujours un Git antérieur à la version 1.7.4.2, vous devrez utiliser tracking
au lieu de upstream
).
0 votes
Ne devriez-vous pas spécifier la branche à pousser ?
3 votes
Pas après un clone ! !! après que le problème soit corrigé, cela fonctionne très bien et il n'est pas nécessaire de spécifier la branche... c'est seulement lors de ce premier checkout d'un dépôt vide que cela se produit, ce qui est TRÈS TRÈS ennuyeux... ils devraient corriger ce problème.
0 votes
J'espère que cet article sera utile à quelqu'un qui essaie de faire ce qui précède samranga.blogspot.com/2015/07/ L'erreur dans la question peut apparaître même lorsque l'on essaie de créer un dépôt git BitBucket à partir d'un projet déjà existant localement.