Puede eliminar la rama, pero primero etiquetarla para que su historial no desaparezca. De esta manera, la sucursal no aparece en la lista de sucursales, lo que debería evitar que las personas trabajen en ella, pero el trabajo no se borrará permanentemente (incluso después de que se ejecute la recolección de basura). Por ejemplo, cada vez que tengo una rama que se ha vuelto irrelevante, pero no estoy preparado para eliminarla permanentemente, la etiqueto como "archivo/< nombre-rama >".
Mientras que en master
o alguna otra rama:
git tag archive/foo foo
git branch -D foo
Esto crea una etiqueta llamada archive/foo
de la rama antes de eliminar foo
foo
. También puede agregar un mensaje a la etiqueta, que explica lo que está en la rama, por lo que existía, por lo que ahora es un callejón sin salida, etc.
git tag -m 'Foo is deprecated in favor of bar' archive/foo foo
La posibilidad de grabar la razón por una rama que se está obsoleta es quizás una ventaja de etiquetar frente a mover ramas a un espacio de nombres alternativo.
Si alguna vez necesita para resucitar a una rama que se ha archivado esta manera, es tan simple como:
git branch foo archive/foo
git tag -d archive/foo # Optional
Ahora la rama está de vuelta como si nunca se borra.
¿Cómo funciona esto para los repos remotos? –
@sardaukar: Esto también puede funcionar con repos remotos presionando la etiqueta de archivo (usando la opción '--tags' a' git push') y luego eliminando la rama remota (usando '' ' refspec mientras empuja). Por ejemplo: 'git tag archive/foo foo; git branch -D foo; git push --etiquetas origen: foo' –
Sería bueno si git tuviera una manera de informar automáticamente a las personas "esta rama se ha archivado" y mostrar el mensaje de confirmación, si las personas intentaron extraer de una rama archivada, pero no lo hace t. –