Usar el carácter de barra en el nombre de la twig de Git

Estoy bastante seguro de que vi en algún lugar de un proyecto popular de Git que las sucursales tenían un patrón como "feature / xyz".

Sin embargo, cuando bash crear una twig con el carácter barra oblicua, aparece un error:

$ git branch labs/feature error: unable to resolve reference refs/heads/labs/feature: Not a directory fatal: Failed to lock ref for update: Not a directory 

Mismo problema para (mi bash inicial):

 $ git checkout -b labs/feature 

¿Cómo se crea una twig en Git con el personaje de barra?

¿Estás seguro de que los Branch labs todavía no existen (como en este hilo )?

No puede tener un file y un directory con el mismo nombre.

Estás tratando de hacer que Git haga básicamente esto:

 % cd .git/refs/heads % ls -l total 0 -rw-rw-r-- 1 jhe jhe 41 2009-11-14 23:51 labs -rw-rw-r-- 1 jhe jhe 41 2009-11-14 23:51 master % mkdir labs mkdir: cannot create directory 'labs': File exists 

Obtiene el equivalente al error "no se puede crear el directory".
Cuando tiene una twig con barras, se almacena como una jerarquía de directorys en .git/refs/heads .

Es posible tener nombres de twigs jerárquicas (nombres de twigs con barra inclinada). Por ejemplo, en mi repository tengo tales twigs. Una advertencia es que no se puede tener tanto la twig 'foo' como la twig 'foo / bar' en el repository.

Tu problema no está en crear una twig con una barra en el nombre.

 $ git branch foo / bar
 error: no se pueden resolver references refs / heads / labs / feature: No es un directory
 fatal: no se pudo bloquear la reference para la actualización: no es un directory

El post de error anterior habla de la twig 'labs / feature', no de 'foo / bar' (a less que sea un error en copy'n'paste, es decir, haya editado partes de la session). ¿Cuál es el resultado de git branch o git rev-parse --symbolic-full-name HEAD ?

Algunas veces ese problema ocurre si ya tiene una twig con el nombre base.

Intenté esto:

 git checkout -b features/aName origin/features/aName 

Desafortunadamente, ya tenía una twig llamada features , y obtuve la exception de la pregunta asker.

La eliminación de las features la twig resolvió el problema, el command anterior funcionó.

En mi caso, olvidé que ya había una twig de labs no utilizada. Eliminarlo resolvió el problema:

 git branch -d labs git checkout -b labs/feature 

Explicación:

Cada nombre solo puede ser una twig principal o una twig normal, no ambas. Es por eso que los labs twigs y labs/feature no pueden existir al mismo time.

El motivo de este comportamiento es que las twigs se almacenan en el sistema de files y allí tampoco puede tener un labs files y un labs directorys en el mismo nivel.

Podría estar equivocado, pero pensé que las barras solo aparecían en los nombres de las twigs cuando se relacionaban con un repository remoto, por ejemplo, origin/master .