fatal: la branche amont de votre branche courante ne correspond pas au nom de votre branche courante
après avoir effectué une vérification de la branche distante releases/rel_5.4.1
en utilisant L'interface graphique Git, je vois ce message d'erreur inattendu quand j'essaie de push
:
fatal: The upstream branch of your current branch does not match
the name of your current branch. To push to the upstream branch
on the remote, use
git push origin HEAD:releases/rel_5.4.1
To push to the branch of the same name on the remote, use
git push origin rel_5.4.1
Je ne sais pas de quoi Git parle. Je doute de vouloir pousser à origin releases/rel_5.4.1
puisque c'est la branche que j'ai vérifiée. Donc aucune des deux options ne me semble correcte.
git status
dit que je suis sur la branche rel_5.4.1
.
Voici la branche telle qu'elle apparaît dans mon .git/config
:
[branch "rel_5.4.1"]
remote = origin
merge = refs/heads/releases/rel_5.4.1
Ce qui se passe sur?
5 réponses
pour le bénéfice des lecteurs qui pourraient manquer le détail probablement le plus important, bien caché dans les commentaires:
ceci est dû à la git config push.default
paramètre. Il définit ce qu' git
quand vous entrez git push
(voir le lien).
dans la question, apparemment le réglage étaitsimple
(qui est la valeur par défaut de git v2
), probablement avec
git config --global push.default simple
Cela signifie, que git
refuse de pousser quand la branche locale et distante ne correspondent pas exactement. Pour permettre à pousser pour le suivi de la branche, ainsi git pull
et git push
symétrique, utilisez
git config --global push.default upstream
Remarque: Quitter --global
loin de simplement changer le réglage du courant (local) git
référentiel.
votre branche locale s'appelle rel_5.4.1
mais la distance n'est releases/rel_5.4.1
(en ce qui concerne Git, le /
n'a pas de signification particulière dans les noms de branche, sauf pour les rendre plus faciles à lire pour l'œil humain).
quand vous poussez, git se méfie si vous voulez pousser votre branche à releases/rel_5.4.1
(le nom de la branche distante) ou si vous souhaitez créer une nouvelle branche à distance. Il remarque cependant la similitude des noms.
Sauf si vous voulez créer une nouvelle branche, le bon de commande est
git push origin HEAD:releases/rel_5.4.1
vous pouvez aussi utiliser
git push origin rel_5.4.1:releases/rel_5.4.1
Pour corriger l'avertissement une fois pour toutes, renommez votre agence locale pour correspondre au nom distant:
git branch -m releases/rel_5.4.1
cette erreur peut être corrigée une fois pour toutes, avec:
git branch releases/rel_5.4.1 -u origin/releases/rel_5.4.1
il change l'amont de la branche, pour correspondre à la bonne télécommande (encore).
semble comme ayant un nom de branche local qui est différent que la télécommande n'est pas ce que Git
aime trop. Vous devrez question:
git push origin HEAD:releases/rel_5.4.1
explicitement sur chaque pression