Elencare i file nel repository git locale?


347

Sto usando Sparkleshare, che utilizza Git per sincronizzare i file tra il mio laptop e il mio server di backup.

Ora voglio essere in grado di sfogliare i file e le directory che ho caricato sul mio server, ma non so come?

Capisco che Git utilizza una sorta di gerarchia di file speciale e che non posso semplicemente elencare i miei file, giusto?

Ma come dovrei fare per elencarli e sfogliare i miei file?

Risposte:


568

Questo comando:

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

elenca tutti i file già impegnati che vengono monitorati dal tuo repository git.


338

Prova questo comando:

git ls-files 

Questo elenca tutti i file nel repository, inclusi quelli che sono solo in scena ma non ancora impegnati.

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


3
Stesso output della risposta precedente, ma solo con --name-only (formato breve). Bella porcellana.
Ron E

21
Una cosa da notare: la risposta accettata funziona su un repository nudo, ma questa risposta no.
Trebor Rude,

1
Questo comando Git rende l'output molto più pulito ed è l'ideale se si desidera semplicemente l'elenco dei file tracciati da Git.
mico,

c'è un modo per elencare solo le directory ... qualcosa del genere git ls-directories ?
Ramesh Pareek,

12
Avvertenza: se ci si trova in una sottodirectory, elenca solo i file sotto quell'albero - la domanda indica "tutti i file nel repository" ma è vero solo se ci si trova nella radice del repository.
mercoledì

2

git ls-tree --full-tree -r HEADe git ls-filesrestituisce tutti i file contemporaneamente. Per un progetto di grandi dimensioni con centinaia o migliaia di file e se sei interessato a un determinato file / directory, potresti trovare più conveniente esplorare directory specifiche. È possibile farlo ottenendo l'ID / SHA-1 della directory che si desidera esplorare e quindi utilizzare git cat-file -p [ID/SHA-1 of directory]. Per esempio:

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

Nell'esempio sopra, 14032aabd85b43a058cfc7025dd4fa9dd325ea97è l'ID / SHA-1 della directory che volevo esplorare. In questo caso, il risultato è stato che quattro file all'interno di quella directory venivano monitorati dal mio repository Git. Se la directory avesse file aggiuntivi, significherebbe che quei file extra non venivano tracciati. Puoi aggiungere file usando git add <file>...ovviamente.


Potresti anche solo cdnella directory che ti interessa e omettere --full-tree.
Nathan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.