¿Listar archivos en el repositorio local de git?

347

Estoy usando Sparkleshare, que usa Git para sincronizar archivos entre mi computadora portátil y mi servidor de respaldo.

Ahora quiero poder examinar los archivos y directorios que he cargado en mi servidor, pero no sé cómo.

Entiendo que Git usa algún tipo de jerarquía de archivos especial y que no puedo simplemente enumerar mis archivos, ¿verdad?

Pero, ¿cómo tendría que hacer para enumerarlos y examinar mis archivos?

Daniel Holm
fuente

Respuestas:

568

Este comando:

git ls-tree --full-tree -r --name-only HEAD

enumera todos los archivos ya confirmados que su repositorio git rastrea.

karlphillip
fuente
338

Prueba este comando:

git ls-files 

Esto enumera todos los archivos en el repositorio, incluidos aquellos que solo están organizados pero aún no confirmados.

http://www.kernel.org/pub/software/scm/git/docs/git-ls-files.html

amadillu
fuente
3
El mismo resultado que la respuesta anterior, pero con --name-only (formato corto). Bonita porcelana.
Ron E
21
Una cosa a tener en cuenta: la respuesta aceptada funciona en un repositorio simple, pero esta respuesta no.
Trebor Rude
1
Este comando Git produce una salida mucho más limpia y es ideal si solo desea que Git realice un seguimiento de la lista de archivos.
mico
¿hay alguna manera de enumerar solo direcotries ... algo así git ls-directories ?
Ramesh Pareek
12
Advertencia: si está en un subdirectorio, solo enumera los archivos debajo de ese árbol; la pregunta indica "todos los archivos en el repositorio", pero eso solo es cierto si está en la raíz del repositorio.
wim
2

git ls-tree --full-tree -r HEADy git ls-filesdevolver todos los archivos a la vez. Para un proyecto grande con cientos o miles de archivos, y si está interesado en un archivo / directorio en particular, puede encontrar más conveniente explorar directorios específicos. Puede hacerlo obteniendo el ID / SHA-1 del directorio que desea explorar y luego usar git cat-file -p [ID/SHA-1 of directory]. Por ejemplo:

git cat-file -p 14032aabd85b43a058cfc7025dd4fa9dd325ea97
100644 blob b93a4953fff68df523aa7656497ee339d6026d64    glyphicons-halflings-regular.eot
100644 blob 94fb5490a2ed10b2c69a4a567a4fd2e4f706d841    glyphicons-halflings-regular.svg
100644 blob 1413fc609ab6f21774de0cb7e01360095584f65b    glyphicons-halflings-regular.ttf
100644 blob 9e612858f802245ddcbf59788a0db942224bab35    glyphicons-halflings-regular.woff
100644 blob 64539b54c3751a6d9adb44c8e3a45ba5a73b77f0    glyphicons-halflings-regular.woff2

En el ejemplo anterior, 14032aabd85b43a058cfc7025dd4fa9dd325ea97es el ID / SHA-1 del directorio que quería explorar. En este caso, el resultado fue que mi repositorio de Git estaba rastreando cuatro archivos dentro de ese directorio. Si el directorio tuviera archivos adicionales, significaría que esos archivos adicionales no estaban siendo rastreados. Puede agregar archivos usando, git add <file>...por supuesto.

Jaime Montoya
fuente
También puede simplemente acceder cdal directorio que le interesa y omitir --full-tree.
Nathan