71 votes

Git 1.8.0: fatal: le maître de branche actuel a plusieurs branches en amont, refusant de pousser

Avec git 1.8.0 j'ai cette étrange question, à chaque fois que je n' git push il refuse:

fatal: The current branch master has multiple upstream branches, refusing to push.

Quand je le fais, git push -u origin master il semble le définir comme un suivi de la branche:

Branch master set up to track remote branch master from origin.

Mais la prochaine fois j'essaie git push il refuse de le faire à nouveau. J'ai essayé de google, mais il semble que le problème est assez nouveau et je ne pouvais pas trouver une explication à ce comportement. Des idées?

Mise à jour: ./git/config

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = gitosis@xxxx.xx:milk.git
[branch "master"]
    remote = origin
    merge = refs/heads/master

Update2: Résolu avec git config remote.origin.push HEAD la ligne suivante est apparu en .git/config de [remote "origin"] section:

    push = HEAD

Update3:

$ git branch -vv
  billing      633c796 [origin/billing: behind 889] links
* master       1a0de50 [origin/master: ahead 1] more fixes
  new_master   3b880d7 [origin/new_master] branches diverged
  photo_stacks 29c8f0d [origin/photo_stacks] 1st try
  responsive   1dad980 [origin/responsive] update

$ git push
fatal: The current branch master has multiple upstream branches, refusing to push.

127voto

Peter van der Does Points 3926

Vous voudrez peut-être faire ce qui suit:

 git config remote.origin.push HEAD
 

Pousser sans aucun argument sur une branche maître peut entraîner votre message d'erreur. Je ne sais pas si c'est un problème de régression ou si cela a toujours été le cas.

36voto

mmullis Points 131

Exécutez git config -l et vérifiez si vous avez plusieurs lignes contenant des références branch.m.mestre *. La section [branche "master"] peut être dupliquée ~/.gitconfig et .git/config. Suppression celui en ~/.gitconfig fixé la détection de branches multiples en amont pour moi.

10voto

redDragonzz Points 656

Vous devez spécifier la branche sur laquelle vous souhaitez pousser. git push tentera automatiquement de transmettre toutes les références et les balises suivies par les branches locales. Il est possible que des branches en ligne sur le serveur se soient déplacées. Par conséquent, vous pourriez vous retrouver avec cette situation. Vous devriez simplement utiliser

 git push origin master
 

Et aussi pour réconcilier les changements, faites git pull qui mettra à jour vos références locales avec celles du serveur.

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