git refname 'origin/master' est ambigu
J'ai un dépôt git qui est suivi à distance de plusieurs branches:
$ git branch -a
* master
remotes/git-svn
remotes/origin/master
remotes/trunk
Lorsque j'essaie de configurer un défaut, j'obtiens l'erreur suivante:
$ git branch --set-upstream-to=origin/master master
warning: refname 'origin/master' is ambiguous.
fatal: Ambiguous object name: 'origin/master'.
Je voudrais kremove certains de la télécommande maître de branches, mais le maître références sont toujours là. Comment puis-je les enlever pour être en mesure de définir la valeur par défaut en amont de la branche de origin/master
?
$ git show-ref master
cba97a58c99743c355b569bbf35636c8823c2d96 refs/heads/master
6726b4985107e2ddc7539f95e1a6aba536d35bc6 refs/origin/master
d83f025cd3800ed7acd76b2e52ae296e33f1cd07 refs/original/refs/heads/master
cba97a58c99743c355b569bbf35636c8823c2d96 refs/remotes/origin/master
- Juste pour être sûr: ce n'
git branch -l
dites-vous? Qu'en estgit tag
? git branch -l
me donnemaster
. Il n'y a pas de balises dans le référentiel.- Essayez
git branch --set-upstream-to=refs/remotes/origin/master master
. - Cela a marché, merci!
Vous devez vous connecter pour publier un commentaire.
La sortie de
git branch -a
montre que vous avez une distance de suivi de branche appeléeorigin/master
. Parfaitement normal.Cependant, la sortie de
git show-ref master
contientqui indique que vous avez probablement couru quelque chose comme de bas niveau de commande:
Cette commande crée une branche (pointant sur la même livraison que
master
) appeléorigin/master
, mais vivant directement sousrefs/
, c'est à dire à l'extérieur larefs/heads/
espace de noms, où les branches vivent normalement. Assez méfiant... Avez-vous l'intention de faire ça?Telle une branche ne pas être répertorié par
git branch -a
. Git est de se confondre, si, parce qu'il voit en deux branches dont l'refnames fin avecorigin/master
:refs/remotes/origin/master
, votre distance de suivi de la branche, etrefs/origin/master
, la branche locale que vous avez créé (par hasard) à l'extérieur derefs/heads/
.Solution
Si vous n'avez pas veux créer
refs/origin/master
Simplement le supprimer:
Puis, il n'y aura pas d'ambiguïté, et Git à respecter lorsque vous essayez de définir
master
's en amont.Si vous ne signifie pas pour créer
refs/origin/master
Pour éviter toute ambiguïté, il suffit de préciser le plein refname de la branche que vous souhaitez définir comme
master
's en amont:Pour fixer les idées, voici un code qui reproduit la situation dans l'un de mes GitHub repos:
push.default
doit être réglé àupstream
(commematching
sera ambigu)Vous avez probablement accidentellement créé un local réf appelé 'origin/master'
par exemple, si vous avez cette
Elle conduirait à ce problème. Celui-ci semble suspect "refs/origin/master". "refs/heads/master" est votre maître, "refs/remotes/origin/master" est votre branche distante de référence, et "refs/origin/master" est probablement une erreur que vous visse jusqu'.
Vous avez juste besoin de supprimer la référence (git update-ref-d ), et les choses vont commencer à travailler à nouveau.
git branch -a
contiendrait une entrée de lectureorigin/master
.git branch
sortie siJ'ai eu un problème similaire en raison d'un accident de la balise nommée "maître", en montrant en
git show-ref master
commerefs/tags/master
. La solution dans ce cas est:J'ai fait face à un même problème il ya quelques jours où il y avait de multiples références créées de la même branche.
Choses que j'ai essayé:
Si il y a de multiples références créées puis il suffit de l'enlever
Après la suppression de la des références que vous pouvez prendre a la caisse de la direction générale de la télécommande d'origine que si vous avez appuyé sur quelque chose en elle, sinon vous devez refaire tout ce que vous avez fait pour la branche
Cette solution a fonctionné pour moi dans le cas d'ambigu branches.