git branch ambiguity

Git: advertencia: el refname ''xxx'' es ambiguo cuando se usa git-svn



branch ambiguity (4)

Estoy usando git como interfaz para Subversion (a través de git svn).

Entonces, para cada tronco / rama svn tengo una rama remota en git llamada "remotes / xxx". Por ejemplo, "remotes / trunk", "remotes / coolfeature".

Ahora quiero tener una rama local "predeterminada" para cada rama remota, para usarla para dcommit. El problema es que quiero que esas ramas sean nombradas después de las ramas de Subversion, como "trunk", "coolfeature", así que tengo las siguientes ramas en git:

trunk coolfeature remotes/trunk remotes/coolfeature

El problema es que cada vez que hago referencia a "trunk" o "coolfeature", git se queja de que el nombre de la rama es ambiguo. No es gran cosa, pero me siento incómodo.

La pregunta es, ¿cómo puedo lidiar con esa advertencia, suponiendo que simplemente cambiar el nombre de las sucursales no es lo que quiero hacer? ¿Cuáles son las mejores prácticas para tales casos?


Es posible que tenga otro ''trunk'' y ''coolfeature'' como una etiqueta. En este caso, git no sabe si se refiere a una rama o etiqueta. Cambie el nombre de las etiquetas y compruebe si git no informa el nombre "ambiguo"


Para evitar los mensajes de conflicto, cuando se refiera a las ramas locales, póngales el prefijo head/

por ejemplo, el topic rama conflictiva

$ git diff topic remotes/topic warning: reframe ''topic'' is ambiguous. ...

se convierte

$ git diff heads/topic remotes/topic ...


Si pasa el --prefix=svn/ flag al comando git svn clone , entonces todas las ramas de Subversion se nombrarán como remotes/svn/branchname . Si esto es aceptable para usted, corrige la advertencia "refname is ambiguous". También le da una buena forma de referirse a las ramas de svn remotas, como por ejemplo, si desea crear una rama de seguimiento local sería algo así como:

$ git checkout -b branchname svn/branchname

La rama local tiene el mismo nombre que la rama svn remota y no hay un problema ambiguo de renombrado.


Si solo quiere deshacerse de la advertencia, establezca core.warnAmbiguousRefs en false :

git config --global core.warnambiguousrefs false

Si desea este comportamiento solo para un único repositorio, omita --global flag.