Si en el momento de crear una rama utilizas como nombre una ruta, como por ejemplo “mi-carpeta-de-ramas/nombre-de-rama”, verás que en la carpeta .git/refs/heads de tu repositorio se creará una subcarpeta “mi-carpeta-de-ramas”. Dentro de la misma verás el fichero “nombre-de-rama” con la referencia. Es decir, git convierte la cadena con formato de ruta que pasamos como argumento en una estructura real de carpetas.
Esta forma de crear ramas soporta subcarpetas, es decir, si creamos una rama que se llame carpeta1/carpeta2/mirama:
$ git checkout -b carpeta1/carpeta2/mirama
git creará el fichero .git/refs/heads/carpeta1/carpeta2/mirama con la referencia.
¿Y cómo muestra SourceTree las ramas creadas de esta manera?
Esta forma de clasificar las ramas en carpetas es especialmente útil cuando trabajamos con ramas para hacer hotfixes, corregir bugs o desarrollar funcionalidades organizadas en historias de usuario.
Desde la interfaz de línea de comandos, así es como veríamos las ramas:
$ git branch -av carpeta1/carpeta2/mirama 4604003 Introduciendo el texto definitivo develop b7bd517 Merge branch ‘feature-H-1’ into develop * feature/H-2 4604003 Introduciendo el text definitive master 87ee184 Initial commit
Si quisiésemos ver sólo las ramas feature, podemos usar la opción –list:
$ git branch --list feature* feature/H-2
Para borrar la rama, usamos el comando git-branch con la ruta completa a la rama:
$ git branch -D carpeta1/carpeta2/mirama
Un truco muy sencillo que nos ayuda a organizar las ramas un poco mejor, especialmente útil si estáis usando SourceTree.