Cómo hacer que 'git log' muestre nombres de archivos como 'svn log -v'

Resuelto jes5199 asked hace 15 años • 13 respuestas

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?

jes5199 avatar Aug 05 '09 04:08 jes5199
Aceptado

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 .

CB Bailey avatar Aug 04 '2009 21:08 CB Bailey

NOTA: está en desuso, utilícelo en su lugar git whatchangedgit log

Se anima a los nuevos usuarios a utilizar git-log[1] en su lugar. El whatchangedcomando 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 logse inventara leyendo la lista de correo del kernel de Linux están capacitados para escribirlo.


Puede usar el comando git whatchanged --statpara 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
mipadi avatar Aug 04 '2009 21:08 mipadi

git showTambié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.

ptc avatar Mar 22 '2011 00:03 ptc

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.

Hazok avatar Jul 11 '2013 02:07 Hazok