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: