2011-03-03 12 views
9

¿Hay alguna manera de hacer que una rama de git deje de aparecer cuando escribe "git branch", pero sigue estando accesible en el historial, es decir, a través de gitk? Tengo muchas ramas antiguas que quiero quitar de mi vista, pero no veo ninguna razón para borrar la historia, incluso de los callejones sin salida de desarrollo en un mundo con discos duros de terabytes.¿Hace que las viejas ramas de git sean invisibles sin hacerlas inalcanzables?

Las etiquetas pueden estar cerca de lo que estoy buscando, pero no quiero tener que nombrar mis callejones sin salida más allá de su mensaje de confirmación. Además, quiero etiquetas de reserva para puntos especialmente buenos en el historial de desarrollo de la línea principal.

Respuesta

4

Empuje las ramas antiguas a un repositorio remoto en uno de los muchos sitios gratuitos de hospedaje de Git.

+0

... o, de manera más eficiente y conveniente, a un repositorio clonado localmente. En Linux, los enlaces duros se usarán automáticamente para compartir el almacenamiento entre el clon y el original. –

-3

Los ID de revisión de git son (casi) únicos. Si desea que las ramas antiguas permanezcan accesibles, simplemente no las recoja; siempre puede recuperarlos revisando directamente su ID de revisión. Esto requerirá ajustar el .git/config de su repositorio para evitar que un git gc elimine las revisiones que ya no se pueden obtener directamente desde el CABEZADOR de cualquier sucursal.

+4

Desactivar auto gc es una opción incorrecta: un repositorio desarrollado activamente consumirá mucho más espacio. –

5

Puede crear su propio espacio de nombre dentro de refs/, como refs/historic/foo, utilizando manualmente el comando update-ref (y luego borrando la rama).

Algunas advertencias de este enfoque:

  • Ellos no aparecen en git branch, pero ellos se muestran en git log --decorate y en gitk sin extra, y es posible utilizar git show-ref para listar todos los árbitros.
  • No se recuperan automáticamente, por lo que si desea que sean transportados deberá usarlos a mano ls-remote y fetch.

Sin embargo, parece que una buena manera de archivar una rama, ya que aparece cuando el historial de navegación, se pueden enumerar de manera explícita, y no el desorden de la rama o la etiqueta espacio de nombres.

Cuestiones relacionadas