Puede eliminar la rama, pero etiquetarla primero, para que su historial no desaparezca. De esta manera, la rama no aparece en la lista de ramas, lo que con suerte debería disuadir a las personas de trabajar 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 "archive / < nombre-rama >".
Mientras está en master
o en alguna otra rama:
git tag archive/foo foo
git branch -D foo
Esto crea una etiqueta con el nombre archive/foo
de la foo
rama antes de eliminarla foo
. También puede agregar un mensaje a la etiqueta, que explique qué hay en la rama, por qué existía, por qué ahora es un callejón sin salida, etc.
git tag -m 'Foo is deprecated in favor of bar' archive/foo foo
La capacidad de registrar por qué una rama está en desuso es quizás una ventaja de etiquetar frente a mover ramas a un espacio de nombres alternativo.
Si alguna vez necesita resucitar una rama que se ha archivado de esta manera, es tan simple como:
git branch foo archive/foo
git tag -d archive/foo # Optional
Ahora la rama está de regreso como si nunca se hubiera eliminado.
--tags
opción paragit push
) y luego eliminando la rama remota (usando:<branch-to-delete>
refspec mientras presiona). Por ejemplo:git tag archive/foo foo; git branch -D foo; git push --tags origin :foo
Las ramas de Git se almacenan como referencias a una revisión. Si elimina la rama, se elimina la referencia; si nada más hace referencia a esa revisión, eventualmente será recolectada como basura. Además, si elimina la rama, entonces se ha ido correctamente (de su repositorio). Si desea marcar una rama como obsoleta pero conservarla para usarla más adelante, puede mover la rama a un subdirectorio:
Alternativamente, puede crear un repositorio separado para las ramas en desuso, extraerlas y eliminarlas del original. En cualquier caso, afectará a cualquier usuario que esté siguiendo las ramas; el contenido de su repositorio no cambiará (ni tampoco ninguno de los nombres de sus ramas), pero si intentan extraer de nuevo, lo harán tienen que cambiar su objetivo en su configuración.
fuente
git branch -D <branchName>
eliminará su rama del repositorio. Ya no podrá verlo ni navegar. Además, perderá todos los cambios de archivo realizados en esa rama.https://git-scm.com/docs/git-branch
fuente
No será navegable a través de git branch y hasta que no se realice la recolección de basura, no se perderá del repositorio.
Si desea marcar la rama en cuestión como un callejón sin salida, simplemente hágalo (es posible que git no lo haga por usted, pero ciertamente puede hacerlo).
Etiquetándolo (de la forma que prefiera) como obra de referencia histórica.
fuente