Lo que he aprendido: limpiar un repo

Leyendo por ahí como es mi costumbre me he encontrado con un par de trucos de git para hacer limpieza en nuestro repo. La limpieza en cuestión tiene dos partes: eliminar los archivos que hemos creado nosotros pero que no queremos tener bajo control y que el propio git adecente sus historias.

Quitar nuestras mierdas

Para eliminar de un plumazo todos los archivos a los que no estemos haciendo un seguimiento simplemente hacemos:

git clean -f

La -f viene de force, nos obliga a escribirlo si queremos que borre, es precavido él.

Este comando tiene varias opciones interesantes:

  • -d elimina también las carpetas
  • -i inicia el modo interactivo
  • -n no elimina de verdad pero vemos una lista de archivos que eliminará.

Podemos usarlo en combinación con git reset --hard para devolver el repo al estado en el que estaba justo tras el último commit. Otra aplicación interesante es cargarnos los archivos auxiliares que aparecen al compilar algo, es especialmente útil si los tenemos en el .gitignore, así no nos saldrán al commitear y tendremos el repo bien limpio.

Yo lo uso concretamente para matar los archivos auxiliares de LaTeX, que llega un momento en que me agobian y no sé qué demonios es lo que tengo que modificar. Mi .gitignore en un proyecto latexiano suele tener esta pinta:

# Ignorar archivos auxiliares de Latex

! *.tex
! Contenido/
! Figuras/

De esta manera, si me organizo en condiciones solo tengo bajo control los archivos necesarios y puedo destruir el resto con git clean.

Adecentar las cosas de git

Aparte de borrar nuestras basuras, git también es capaz de hacer limpieza sobre sus archivos. Para ello tenemos este simpático comando:

git gc

Sirve para que git gestione mejor el espacio y quite las referencias que ya no sirven, por ejemplo. Podemos ejecutarlo con la opción --auto para que actúe solo si es necesario. No os puedo decir en detalle qué hace ya que git es una cosa muy loca, pero me parece un comando a tener en la recámara, sobre todo en los proyectos grandes o con archivos binarios (como los pdfs).

Nada más por hoy, ¿qué trucos de git usáis vosotros, gentes del Internet? Contadme para que aprenda 🙂

Referencias

Man de git clean

Man de git gc

Undoing Changes en el tuto de Atlassian

Is there a way to clean up git? en StackOverflow

git gc: cleaning up after yourself git-fu

Git Tip of the Week: GC and Pruning


Bailando en la cocina:

Anuncios

6 pensamientos en “Lo que he aprendido: limpiar un repo

  1. jpa

    Genial !!! yo lo conocía, pero antes de conocerlo… y lo digo con un poco de vergüenza, cosas de no leer la documentación, llegue a borrar el repositorio y volverlo a crear… probre de mi ignorancia !!!!

    Responder
    1. Ondiz Autor de la entrada

      De vergüenza nada, así es como se aprende! Ya recuerdo una vez que la lié petarda con un rebase y menos mal que tenía una copia de seguridad por ahí 😀

      Responder
  2. inclusa

    Genial, yo también hubiera borrado el repositorio y lo hubiera vuelto a crear, ahora ya no lo haré así.

    Utilizo:

    $ git reset –hard HEAD~3

    Para borrar los últimos 3 commits, por ejemplo, es útil para no tener que ir borrando uno a uno.

    Responder
  3. Pingback: En qué ando: junio | Onda Hostil

¡Opina sin miedo! (Puedes usar Markdown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s