¿Debo eliminar una rama después de fusionarla?

94

Después de fusionar una rama, ¿la borra del repositorio?
Sin embargo, ¿es una buena práctica o no?

Por lo general, creo muchas ramas, ya que no quiero romper mi versión actual y desearía eliminarlas para mantener las cosas en orden.
Sin embargo, si trabaja con Assembla o GitHub, sus solicitudes de combinación de ramas antiguas se guardarán en el sitio, por lo que si las elimina obtendrá un error ya que no podrá recuperarlas ...

Por lo general, ¿cómo se maneja eso?

tampe125
fuente

Respuestas:

73

No hay problema para eliminar las ramas que se han fusionado. Todas las confirmaciones todavía están disponibles en el historial, e incluso en la interfaz de GitHub, seguirán apareciendo (consulte, por ejemplo, este PR que se refiere a una bifurcación que he eliminado después de que se aceptó el PR).

Fred Foo
fuente
Dijiste que todas las confirmaciones todavía están disponibles en el historial. Si veo un proyecto en github.com, encuentro que esto es cierto. Sin embargo, en la aplicación de escritorio Github para Mac, parece que ya no puede ver el historial de confirmaciones de la rama fusionada. ¿Estoy equivocado?
peacetype
Agregaría que si no está usando un cliente git, especialmente si no usa uno con una interfaz gráfica de usuario, tener las ramas puede ser útil para comprender bien su registro. Es decir, dado que no tiene una interfaz gráfica de usuario de github / gitlab / otra para mirar, mantener los nombres de las ramas le permite tener un lugar simple para hacer referencia al historial además del historial de confirmación, que de lo contrario se pierde al eliminar la rama. Alguien, por favor, avíseme si esta última afirmación es incorrecta.
Raj
@Raj ya lo tiene, en forma de Merge branch fix-foo-barmensajes de confirmación. Pruebe git log --grep="Merge branch", luego suelte sus propias anclas de interés a través de git checkout -b curious-change. Además, no se pierde nada al eliminar una rama, excepto el simple puntero "nombre de rama → commithash" (que es lo que realmente es una rama, no importa local o remota).
ulidtko
@ fred-foo Sin embargo, la pregunta de si es una buena práctica no tiene respuesta. (Tengo la misma pregunta)
Esger
27

Definitivamente limpio mis ramas después de que se hayan fusionado.

Usamos GitLab y fusionamos solicitudes en el trabajo, por lo que la información histórica sobre las ramas se almacena allí; No necesito que abarroten mi lista de sucursales, y cuando miro la bifurcación de un compañero de trabajo, idealmente me gustaría ver solo las ramas de su desarrollo activo actual. Si estoy tratando de ver algún código en su rama, quiero poder ver solo algunas ramas actualmente activas, y no todas las funciones o correcciones en las que han comenzado a trabajar.

Lo anterior también se aplica a BitBucket y GitHub.

La única razón que puede tener para no eliminar una rama después de la fusión es para saber dónde terminó una función determinada, pero las confirmaciones de fusión (y git merge --no-ffsi realmente lo desea) hacen que eso sea irrelevante.

Asera
fuente
3
Aparentemente, GitHub siempre hace --no-ff, por lo que no perderemos el hecho de que se trataba de una rama incluso en esas situaciones.
joeytwiddle
7
@joeytwiddle: asumiendo que estás usando la propia interfaz de GitHub para fusionar la rama, ¡sí!
Asera
1

Solo tenga cuidado con
todas las referencias de URL de hipervínculos de sus ramas BORRADAS, estarán ROTAS .

Por ejemplo,
si elimina la branch_feature_xrama de su repositorio, la
URL del hipervínculo correspondiente de esta rama se romperá
https://github.com/username/project/tree/branch_feature_x

ahmednabil88
fuente
0

Solo para aclarar, la rama, desde el punto de vista de git, es solo un enlace a algún compromiso. Al eliminar la rama, no eliminará las confirmaciones de git repo. Por supuesto, las confirmaciones separadas se limpiarán después de un tiempo a través del recolector de basura git.

FYI: Normalmente estamos fusionando ramas en master a través de la interfaz bitbucket. Allí puedes poner delete feature branch after mergebandera.

Si necesita lidiar con ramas demasiado antiguas, puede buscar algunas utilidades, por ejemplo, esta .

AGrigorii
fuente