Ésto está weno.
Estaba comparando versiones de un proyecto con git diff y tirándolos a un archivo único así

git diff ~/ruta/archivo >> ~/ruta/resultado.txt

lo cual se puede hacer a mano si son pocos archivos: simplemente hacemos git status, copiamos los nombres de los archivos que tienen diferencias y los copaimos en vez de ~/ruta/archivo arriba. Pero llegó un punto en que eran demasiados archivos…

Entonces caché que con

git diff --name-only

puedo traerme una lista con los nombres de los archivos con diferencias, separados por saltos de línea.
Luego ¿cómo recorrerlos y ejecutar el mismo comando para cada uno de ellos? ¿Necesito hacer una shell para ésto?

La consola de Linux (Debian Wheezy) tiene el comando xargs, que sirve justamente para ésto.
Se le pasan los argumentos separados por espacio o salto de línea vía pipey ejecuta el comando a continuación para cada uno de ellos

git diff --name-only | xargs git diff >> ~/ruta/resultado.txt

y funka! Inspiración >>

Este sitio utiliza cookies.    Leer más