2012-04-20 19 views
52

Me gustaría realizar una confirmación y cerrar su rama, sin eliminarla del historial.¿Cómo cerrar una rama SIN eliminarla del historial en git?

Con mercurial Ive commit --close-branch, luego update a uno anterior, y sigue trabajando. Con git ... estoy confundido.

+1

_Needless decir, la búsqueda de estas palabras clave que se encuentran sobre todo al revés, es decir, personas que desean quitar cosas de history._ –

+1

creo que lo que hace que este confuso es la terminología. En git, no creo que cierres alguna vez una rama. ¿Qué hace exactamente "close-branch" en mercurial? – MikaelHalen

+2

Un efecto impresionante de cerrar una rama en mercurial es: nadie puede seguir empujando esa cabeza. - ¿Hay algún camino para eso? –

Respuesta

70

No existe un equivalente exacto para cerrar una rama en Git, porque las ramas de Git son más livianas que en Mercurial. Su equivalente Mercurial es más marcadores que ramas.

Si entiendo correctamente, cerrar una rama en Mercurial hace que desaparezca de la lista de sucursales, por lo que puede lograr lo mismo archivándola. Un usual practice es etiquetar su punta como archivo, y eliminarlo:

git tag archive/<branchname> <branchname> 
git branch -d <branchname> 
git checkout master 

Se eliminará la rama, y ​​puede ser recuperada más tarde por el control de la etiqueta, y volver a crear la rama:

git checkout archive/<branchname> 
git checkout -b new_branch_name 
+0

Al menos en git 1.9.1 Tuve que usar 'git branch -D' en lugar de' -d'. –

+0

La -D es necesaria si la rama correspondiente aún no se fusionó completamente con el maestro. – Simeon

Cuestiones relacionadas