Listar arquivos no repositório git local?

347

Estou usando o Sparkleshare, que usa o Git para sincronizar arquivos entre meu laptop e meu servidor de backup.

Agora eu quero poder navegar nos arquivos e diretórios que carreguei no meu servidor, mas não sei como?

Entendo que o Git usa algum tipo de hierarquia especial de arquivos e que não posso apenas listar meus arquivos, certo?

Mas como eu teria que fazer para listá-los e procurar meus arquivos?

Daniel Holm
fonte

Respostas:

568

Este comando:

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

lista todos os arquivos já confirmados sendo rastreados pelo seu repositório git.

karlphillip
fonte
338

Tente este comando:

git ls-files 

Isso lista todos os arquivos no repositório, incluindo aqueles que são apenas preparados, mas ainda não confirmados.

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

amadillu
fonte
3
Mesma saída que a resposta acima, mas com --name-only (formato curto). Porcelana agradável.
Ron E
21
Uma coisa a observar: a resposta aceita funciona em um repositório simples, mas essa resposta não.
Trebor rude
11
Este comando Git produz uma saída muito mais limpa e é ideal se você deseja apenas a lista de arquivos rastreados pelo Git.
Mico
existe uma maneira de listar apenas direcotries .. algo assim git ls-directories ?
Ramesh Pareek 25/05
12
Aviso: se você estiver em um subdiretório, ele lista apenas os arquivos sob essa árvore - a pergunta indica "todos os arquivos no repositório", mas isso só é verdade se você estiver na raiz do repositório.
wim
2

git ls-tree --full-tree -r HEADe git ls-filesretorne todos os arquivos de uma vez. Para um projeto grande com centenas ou milhares de arquivos, e se você estiver interessado em um arquivo / diretório específico, poderá achar mais conveniente explorar diretórios específicos. Você pode fazer isso obtendo o ID / SHA-1 do diretório que deseja explorar e depois usar git cat-file -p [ID/SHA-1 of directory]. Por exemplo:

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

No exemplo acima, 14032aabd85b43a058cfc7025dd4fa9dd325ea97é o ID / SHA-1 do diretório que eu queria explorar. Nesse caso, o resultado foi que quatro arquivos nesse diretório estavam sendo rastreados pelo meu repositório Git. Se o diretório tivesse arquivos adicionais, isso significaria que esses arquivos extras não estavam sendo rastreados. Você pode adicionar arquivos usando, é git add <file>...claro.

Jaime Montoya
fonte
Você também pode acessar cdo diretório em que está interessado e omitir --full-tree.
Nathan