¿Cómo enumero todos los archivos en una confirmación?

Resuelto Philip Fourie asked hace 15 años • 30 respuestas

¿Cómo puedo imprimir una lista simple de todos los archivos que formaron parte de una confirmación determinada?

Aunque a continuación se enumeran los archivos, también incluye información de diferencias no deseada para cada uno:

git show a303aa90779efdd2f6b9d90693e2cbbbe4613c1d
Philip Fourie avatar Jan 08 '09 19:01 Philip Fourie
Aceptado

Manera preferida (porque es un comando de plomería ; destinado a ser programático):

$ git diff-tree --no-commit-id --name-only bd61ad98 -r
index.html
javascript/application.js
javascript/ie6.js

Otra forma (menos preferida para scripts, porque es un comando de porcelana ; destinado a ser orientado al usuario)

$ git show --pretty="" --name-only bd61ad98    
index.html
javascript/application.js
javascript/ie6.js

  • Suprime la --no-commit-idsalida del ID de confirmación.
  • El --prettyargumento especifica una cadena de formato vacía para evitar problemas al principio.
  • El --name-onlyargumento muestra solo los nombres de los archivos afectados (Gracias Hank). Úselo --name-statusen su lugar si desea ver qué sucedió con cada archivo ( eliminado , modificado , agregado )
  • El -rargumento es recurrir a subárboles.
Ryan McGeary avatar Jan 08 '2009 13:01 Ryan McGeary

Si desea obtener la lista de archivos modificados:

git diff-tree --no-commit-id --name-only -r <commit-ish>

Si desea obtener la lista de todos los archivos en una confirmación, puede usar

git ls-tree --name-only -r <commit-ish>
Jakub Narębski avatar Jan 14 '2009 19:01 Jakub Narębski

Simplemente asumiré que eso gitkno es lo que se desea para esto. En ese caso, inténtalo git show --name-only <sha>.

Hank Gay avatar Jan 08 '2009 12:01 Hank Gay