Comprimir sólo los archivos que han cambiado de un proyecto git

git-post.jpg
Solucionex
23
Abr 18

Hay veces que en los despliegues de código, nos interesa subir únicamente los archivos que hemos tocado, junto con su estructura de directorios, y si han sido varios archivos de localizaciones muy distintas, puede ser un problema o vernos obligados a subir el código completo, por ejemplo en alguna actualización de core o de algún tipo que modifique cantidad de archivos ya existentes y añada nuevos.

Bueno pues como casi todo en la informática, hay solución a éste problema.

Vamos a aprender con un sencillo comando a copiar los archivos que han cambiado de un commit y evitar subir el sistema completo, para esto:

1 - Una vez tenemos los cambios hacemos push a git con los cambios que queremos en la rama con la que trabajamos.

2 - Ejecutamos el siguiente comando:
        git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT "ID_DEL_COMMIT" | xargs tar -rf "archivoComprimido".tar

3 - Al ejecutar el comando cambiamos "ID_DEL_COMMIT" por el ID del commit que acabamos de hacer y "archivoComprimido".tar por el nombre que queráis dar a la compresión de todo el arbol de directorios y ficheros del commit.

Y listo, ya tenemos un paquete preparado para subir con nuestra actualización parcial de código, espero que os ayude en vuestros despliegues.