Cómo hacer que 'git log' muestre nombres de archivos como 'svn log -v'
El registro de SVN tiene un modo "-v" que genera los nombres de los archivos modificados en cada confirmación, así:
jes5199$ svn registro -v -------------------------------------------------- ---------------------- r1 | jes5199 | 2007-01-03 14:39:41 -0800 (miércoles 3 de enero de 2007) | 1 linea Caminos cambiados: A/AUTORES A /COPIANDO A /Registro de cambios UNA / EVOLUCIÓN A /INSTALAR /MacOSX
¿Existe una forma rápida de obtener una lista de archivos modificados en cada confirmación en Git?
Para conocer los nombres de ruta completos de los archivos modificados:
git log --name-only
Para conocer los nombres de ruta completos y el estado de los archivos modificados:
git log --name-status
Para nombres de ruta abreviados y un diffstat de archivos modificados:
git log --stat
Hay muchas más opciones. Consulta la documentación .
NOTA: está en desuso, utilícelo en su lugar git whatchanged
git log
Se anima a los nuevos usuarios a utilizar git-log[1] en su lugar. El
whatchanged
comando es esencialmente el mismo que git-log[1] pero por defecto muestra la salida de la diferencia en formato sin formato y omite las fusiones.El mando se mantiene principalmente por razones históricas; Los dedos de muchas personas que aprendieron Git mucho antes de que
git log
se inventara leyendo la lista de correo del kernel de Linux están capacitados para escribirlo.
Puede usar el comando git whatchanged --stat
para obtener una lista de archivos que cambiaron en cada confirmación (junto con el mensaje de confirmación).
Referencias
- https://git-scm.com/docs/git-whatchanged
git show
También es un gran comando.
Es algo así como svn diff
, pero puedes pasarle un hash de confirmación de git y ver esa diferencia.
Si desea obtener solo los nombres de los archivos sin el resto del mensaje de confirmación, puede usar:
git log --name-only --pretty=format: <branch name>
Luego, esto se puede ampliar para utilizar las diversas opciones que contienen el nombre del archivo:
git log --name-status --pretty=format: <branch name>
git log --stat --pretty=format: <branch name>
Una cosa a tener en cuenta al utilizar este método es que hay algunas líneas en blanco en el resultado que deberán ignorarse. Usar esto puede ser útil si desea ver los archivos que se han modificado en una sucursal local, pero que aún no se han enviado a una sucursal remota y no hay garantía de que ya se haya extraído lo último de la sucursal remota. Por ejemplo :
git log --name-only --pretty=format: my_local_branch --not origin/master
Mostraría todos los archivos que se han modificado en la rama local, pero que aún no se han fusionado con la rama maestra en el control remoto.