¿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?

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).


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.


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


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 .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.