2011-03-12 16 views
7

He tenido un proyecto simple siendo administrado en un repositorio de Git. Hasta la fecha no he creado intencionalmente las ramas, pero cuando intenté crear mi primer día de hoy usandoError en la creación de la rama: "warning: refname 'master' es ambiguo."

$ git branch mybranch 

veo este error:

warning: refname 'master' is ambiguous. 
fatal: Ambiguous object name: 'master'. 

Profundizando:

$ git branch -a   
* master 
remotes/master/HEAD -> master/master 
remotes/master/master 

¿Es normal ver esto en Git? ¿He clonado mi repositorio de forma incorrecta? ¿Cuál es la mejor manera de resolver este problema?

+0

Parece que hiciste algo raro al clonar. Para clonar correctamente, use 'git clone [url] [destination path]'. Para obtener más ayuda de diagnóstico, publique lo que se obtiene cuando se ejecuta 'git config -l' –

+0

Gracias marca, me sale: core.repositoryformatversion = 0 core.filemode = true core.bare = false core.logallrefupdates = true core.ignorecase = true remote.master.fetch = + refs/heads/*: refs/remotos/master/* [email protected]: ###/###. Git branch.master.remote = maestro branch.master.merge = refs/heads/master –

Respuesta

11

Parece que es ambiguo porque el nombre y el nombre de su sucursal remoto son master. Usted puede tratar de cambiar el nombre de la distancia a la más convencional origin ejecutando

git remote rename master origin 
6

las reglas de cómo se interpretan se dan en gitrevisions(7) especificaciones de revisión (referenciado desde git(1), entre otros fragmentos de la documentación).

En resumen, master coincide con dos patrones cuando se aplica a los árbitros en su repositorio: una rama local (refs/heads/<name>) y el valor predeterminado rama de un mando a distancia (refs/remotes/<name>/HEAD) a distancia de seguimiento.

Se pueden desambiguar utilizando heads/master para la sucursal local y master/HEAD (o master/master en su caso) para la sucursal de seguimiento remoto.

Como mencionó Andrew Marshall, es posible que desee cambiar el nombre del control remoto para evitar tener que desambiguar en primer lugar.

+0

+1 para hacer referencia a la documentación donde se explica esto. Desearía que git no probara 'refs/remotes//HEAD' - solo crea confusión para las personas que no están muy seguras de qué son los remotos y las sucursales, con muy poco beneficio para cualquiera que entienda la diferencia ... –

Cuestiones relacionadas