Essayez ceci dans votre alice
référentiel (avant de pousser):
git config push.default tracking
Ou, configurez-le comme valeur par défaut pour votre utilisateur avec git config --global …
.
git push
utilise par défaut le origin
référentiel (qui est normalement le référentiel à partir duquel vous avez cloné le référentiel actuel), mais il ne choisit pas par défaut de pousser la branche en cours - il choisit par défaut de ne pousser que les branches qui existent à la fois dans le référentiel source et dans le référentiel de destination.
La push.default
variable de configuration (voir git-config (1) ) contrôle ce qui git push
va pousser quand on ne lui donne aucun argument "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
(valeur par défaut)
Cela pousse toutes 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 actuellement extraite.
upstream
ou tracking
(Les deux valeurs signifient la même chose. La dernière a été dépréciée pour éviter toute confusion avec les branches de "suivi à distance". La première a été introduite dans 1.7.4.2, donc vous devrez utiliser la seconde si vous utilisez Git 1.7.3.1. )
Ceux-ci poussent la branche courante vers la branche spécifiée par sa configuration «amont».
current
Cela pousse la branche actuelle vers la branche du même nom dans le référentiel de destination.
Ces deux derniers finissent par être les mêmes pour les cas courants (par exemple travailler sur un maître local 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 «en 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
), la poussée irait origin
de » maître de la branche. Lorsqu'il est égal à current
, le push irait à origin
la branche quickfix de .
Le matching
paramètre mettra à jour bare
le maître de votre scénario une fois qu'il aura été établi. Pour l'établir, vous pouvez utiliser git push origin master
une fois.
Cependant, le upstream
paramètre (ou peut-être current
) semble être mieux adapté à 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 avant 1.7.4.2, vous devrez utiliser à la tracking
place de upstream
).