Liste des fichiers dans le référentiel git local?

347

J'utilise Sparkleshare, qui utilise Git pour synchroniser les fichiers entre mon ordinateur portable et mon serveur de sauvegarde.

Maintenant, je veux pouvoir parcourir les fichiers et les répertoires que j'ai téléchargés sur mon serveur, mais je ne sais pas comment?

Je comprends que Git utilise une sorte de hiérarchie de fichiers spéciale et que je ne peux pas simplement lister mes fichiers, non?

Mais comment devrais-je faire pour les répertorier et parcourir mes fichiers?

Daniel Holm
la source

Réponses:

568

Cette commande:

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

répertorie tous les fichiers déjà validés suivis par votre dépôt git.

karlphillip
la source
338

Essayez cette commande:

git ls-files 

Cela répertorie tous les fichiers dans le référentiel, y compris ceux qui sont uniquement intermédiaires mais pas encore validés.

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

amadillu
la source
3
Même sortie que la réponse ci-dessus, mais avec --name-only (format court). Belle porcelaine.
Ron E
21
Une chose à noter: la réponse acceptée fonctionne sur un repo nu, mais cette réponse ne fonctionne pas.
Trebor Rude
1
Cette commande Git fait une sortie beaucoup plus propre et est idéale si vous voulez juste la liste des fichiers suivis par Git.
mico
existe-t-il un moyen de répertorier uniquement les direcotries .. quelque chose comme git ls-directories ?
Ramesh Pareek
12
Avertissement: si vous êtes dans un sous-répertoire, il répertorie uniquement les fichiers sous cette arborescence - la question indique "tous les fichiers du référentiel" mais cela n'est vrai que si vous êtes à la racine du référentiel.
wim
2

git ls-tree --full-tree -r HEADet git ls-filesrenvoyez tous les fichiers à la fois. Pour un grand projet avec des centaines ou des milliers de fichiers, et si vous êtes intéressé par un fichier / répertoire particulier, vous pouvez trouver plus pratique pour explorer des répertoires spécifiques. Vous pouvez le faire en obtenant l'ID / SHA-1 du répertoire que vous souhaitez explorer puis utiliser git cat-file -p [ID/SHA-1 of directory]. Par exemple:

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

Dans l'exemple ci-dessus, 14032aabd85b43a058cfc7025dd4fa9dd325ea97est l'ID / SHA-1 du répertoire que je voulais explorer. Dans ce cas, le résultat était que quatre fichiers de ce répertoire étaient suivis par mon dépôt Git. Si le répertoire avait des fichiers supplémentaires, cela signifierait que ces fichiers supplémentaires n'étaient pas suivis. Vous pouvez ajouter des fichiers en utilisant git add <file>...bien sûr.

Jaime Montoya
la source
Vous pouvez également simplement accéder cdau répertoire qui vous intéresse et omettre --full-tree.
Nathan