Aquí hay algunas convenciones de nombres de sucursales que uso y las razones por las cuales
Convenciones de denominación de sucursales
- Use tokens de agrupación (palabras) al comienzo de los nombres de sus sucursales.
- Defina y use tokens de plomo cortos para diferenciar ramas de una manera que sea significativa para su flujo de trabajo.
- Use barras para separar partes de los nombres de sus sucursales.
- No utilice números desnudos como partes principales.
- Evite nombres descriptivos largos para ramas de larga vida.
Fichas de grupo
Use tokens de "agrupación" delante de los nombres de sus sucursales.
group1/foo
group2/foo
group1/bar
group2/bar
group3/bar
group1/baz
Los grupos se pueden nombrar como desee para que coincida con su flujo de trabajo. Me gusta usar sustantivos cortos para los míos. Siga leyendo para obtener más claridad.
Fichas cortas bien definidas
Elija tokens cortos para que no agreguen demasiado ruido a cada uno de los nombres de sus sucursales. Yo uso estos:
wip Works in progress; stuff I know won't be finished soon
feat Feature I'm adding or expanding
bug Bug fix or experiment
junk Throwaway branch created to experiment
Cada uno de estos tokens se puede utilizar para indicarle a qué parte de su flujo de trabajo pertenece cada rama.
Parece que tiene varias ramas para diferentes ciclos de un cambio. No sé cuáles son sus ciclos, pero supongamos que son 'nuevos', 'probados' y 'verificados'. Puede nombrar sus ramas con versiones abreviadas de estas etiquetas, siempre escritas de la misma manera, para agruparlas y recordarle en qué etapa se encuentra.
new/frabnotz
new/foo
new/bar
test/foo
test/frabnotz
ver/foo
Puede saber rápidamente qué ramas han alcanzado cada etapa diferente, y puede agruparlas fácilmente usando las opciones de coincidencia de patrones de Git.
$ git branch --list "test/*"
test/foo
test/frabnotz
$ git branch --list "*/foo"
new/foo
test/foo
ver/foo
$ gitk --branches="*/foo"
Usa barras para separar las partes
Puede usar la mayoría de los delimitadores que desee en los nombres de las ramas, pero creo que las barras son las más flexibles. Es posible que prefiera usar guiones o puntos. Pero las barras le permiten cambiar el nombre de una rama al empujar o buscar a / desde un control remoto.
$ git push origin 'refs/heads/feature/*:refs/heads/phord/feat/*'
$ git push origin 'refs/heads/bug/*:refs/heads/review/bugfix/*'
Para mí, las barras también funcionan mejor para la expansión de pestañas (finalización de comandos) en mi shell. De la manera que lo configuré, puedo buscar ramas con diferentes subpartes escribiendo los primeros caracteres de la parte y presionando la tecla TAB. Zsh luego me da una lista de ramas que coinciden con la parte del token que he escrito. Esto funciona tanto para los tokens anteriores como para los incrustados.
$ git checkout new<TAB>
Menu: new/frabnotz new/foo new/bar
$ git checkout foo<TAB>
Menu: new/foo test/foo ver/foo
(Zshell es muy configurable sobre la finalización de comandos y también podría configurarlo para manejar guiones, guiones bajos o puntos de la misma manera. Pero elijo no hacerlo).
También te permite buscar ramas en muchos comandos git, como este:
git branch --list "feature/*"
git log --graph --oneline --decorate --branches="feature/*"
gitk --branches="feature/*"
Advertencia: como Slipp señala en los comentarios, las barras pueden causar problemas. Debido a que las ramas se implementan como rutas, no puede tener una rama llamada "foo" y otra rama llamada "foo / bar". Esto puede ser confuso para los nuevos usuarios.
No use números desnudos
No utilice el uso de números desnudos (o números hexadecimales) como parte de su esquema de nombres de sucursal. Dentro de la expansión de tabulación de un nombre de referencia, git puede decidir que un número es parte de un sha-1 en lugar de un nombre de rama. Por ejemplo, mi rastreador de problemas nombra errores con números decimales. Nombre mis ramas relacionadas CRnnnnn en lugar de solo nnnnn para evitar confusiones.
$ git checkout CR15032<TAB>
Menu: fix/CR15032 test/CR15032
Si intentara expandir solo 15032, git no estaría seguro de si quería buscar SHA-1 o nombres de sucursales, y mis opciones serían algo limitadas.
Evite nombres largos y descriptivos
Los nombres largos de sucursal pueden ser muy útiles cuando está mirando una lista de sucursales. Pero puede interferir cuando se observan registros de una línea decorados, ya que los nombres de las ramas pueden consumir la mayor parte de la línea y abreviar la parte visible del registro.
Por otro lado, los nombres de rama largos pueden ser más útiles en "commit de fusión" si no los reescribe habitualmente a mano. El mensaje predeterminado de confirmación de fusión es Merge branch 'branch-name'
. Puede que le resulte más útil que aparezcan mensajes de combinación como en Merge branch 'fix/CR15032/crash-when-unformatted-disk-inserted'
lugar de solo Merge branch 'fix/CR15032'
.