Consultar con Git los archivos modificados
Hace poco un compañero me preguntó cómo podía consultar los archivos que había gestionado en un desarrollo, desde la versión que había partido, hasta la versión actual en la que se encontraba. Consultando un poco dimos con esta opción,
$ git diff 0819dfcb 20620b5b --name-only
Y el resultado era exáctamente el que buscábamos, nombres de los archivos que habian sufrido algún tipo de modificación entre los dos commits que le estábamos pasando al comando git diff.
bash/aliases
bash/rc
bash/specific_aliases
bash/specific_rc
guake/preferences
vim/.netrwhist
vim/rc
Al usar esta información, mi compañero comprobó que los archivos podían haber sido eliminados, además de creados o modificados; esos archivos eliminados no existian en la versión actual, y la nueva necesidad se centró en identificarlos. Para esto usamos git log de este modo,
$ git log 0819dfcb 20620b5b --diff-filter=D --summary | grep delete
pero el resultado no era tan limpio.
delete mode 100644 vim/.netrwhist
De nuevo, la mejor opción volvia a pasar por git diff,
$ git diff 0819dfcb 20620b5b --name-status | grep '^D'
que daba esta otro resultado más limpio y más sencillo de manipular.
D vim/.netrwhist
De hecho, el comamdo que finalmente usó mi compañero para el script que estaba desarrollando, fue
$ git diff 0819dfcb 20620b5b --name-status
con el resultado que sigue, donde además de disponer de los archivos, se aclara el tipo de gestión realizada.
M bash/aliases
M bash/rc
M bash/specific_aliases
M bash/specific_rc
M guake/preferences
D vim/.netrwhist
M vim/rc
Aquí puedes consultar que estado representa cada una de las letras mayúsculas que anteceden a los archivos.