[GIT] Comprimir ficheros modificados entre dos commits

Imagina que has distribuido una versión de tu aplicación, que está en uso y, pasadas unas semanas, tienes lista nuevas funcionalidades que quieres incorporar en casa del “cliente”.

Algo parecido es lo que me ha ocurrido recientemente con una aplicación web que le he desarrollado a mi hermano para simplificarle algunas tareas de gestión en el colegio en el que trabaja.

Aunque le podría haber enviado un archivo comprimido con la versión nueva de la web preferí reducir el tamaño del fichero y aquí os dejo cómo hacerlo por si os resulta de utilidad en un futuro (o yo no me acuerdo de cómo lo hice 😅)

Obteniendo los ficheros modificados

Lo primero que necesitaremos saber es qué ha cambiado desde la último vez y, gracias a GIT, no es demasiado complicado.

Basta lanzar un

git diff -name-only HEAD 25322ead6b18fb2bb4c85163479f81e8d4a3acf1 > /tmp/ficheros.lst

donde:

  • 25322ead6b18fb2bb4c85163479f81e8d4a3acf1 es el identificador del último commit que tiene el cliente. Debería haber usado tags pero como es un proyecto de andar por casa y, por las fechas del log, sé perfectamente cuándo le envié la última versión he optado por hacerlo así.
  • HEAD referencia a la cabeza (últimos cambios) en el repositorio de mi proyecto. Puedes utilizar cualquier commit intermedio según tus necesidades y circunstancias particulares
  • /tmp/ficheros.lst es el fichero en el que anotar las rutas a los ficheros que han cambiado entre los dos commits anteriores

listado ficheros modificados entre dos commits

Comprimiendo una lista de ficheros

Aunque el comando zip permite indicar, uno a uno, los ficheros que deseamos incluir, es mucho más sencillo cuando se utiliza un fichero con el listado de archivos a comprimir y, a nosotros, nos va a venir de perlas ¿no os parece? 😉

Lanza un

zip -9 /tmp/cambios.zip -@ < /tmp/ficheros.lst

donde:

  • /tmp/cambios.zip es el fichero comprimido a generar
  • /tmp/ficheros.lst es el fichero generado por GIT en el apartado anterior y que indica los archivos (con sus rutas) a incluir

comprimir ficheros git

Conclusión

Pequeño truco que nos permitirá comprimir todos los archivos que han cambiado entre dos commits de nuestro repositorio GIT.

Y tú…

  • ¿Qué política de actualizaciones sueles seguir?
  • ¿Conocías las posibilidad de comprimir una lista de ficheros?
  • ¿Has usado alguna vez la posibilidad de listar los ficheros que han cambiado en tu proyecto?

Responder

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