Dateien im lokalen Git Repo auflisten?

347

Ich verwende Sparkleshare, das Git verwendet, um Dateien zwischen meinem Laptop und meinem Sicherungsserver zu synchronisieren.

Jetzt möchte ich in der Lage sein, die Dateien und Verzeichnisse zu durchsuchen, die ich auf meinen Server hochgeladen habe, aber ich weiß nicht wie?

Ich verstehe, dass Git eine spezielle Dateihierarchie verwendet und dass ich meine Dateien nicht einfach auflisten kann, oder?

Aber wie müsste ich vorgehen, um sie aufzulisten und meine Dateien zu durchsuchen?

Daniel Holm
quelle

Antworten:

567

Dieser Befehl:

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

listet alle bereits festgeschriebenen Dateien auf, die von Ihrem Git-Repo verfolgt werden.

Karlphillip
quelle
338

Versuchen Sie diesen Befehl:

git ls-files 

Hier werden alle Dateien im Repository aufgelistet, einschließlich der Dateien, die nur bereitgestellt, aber noch nicht festgeschrieben wurden.

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

Amadillu
quelle
3
Gleiche Ausgabe wie die obige Antwort, jedoch mit --name-only (Kurzformat). Schönes Porzellan.
Ron E
21
Eines ist zu beachten: Die akzeptierte Antwort funktioniert auf einem nackten Repo, diese Antwort jedoch nicht.
Trebor Rude
1
Dieser Git-Befehl sorgt für eine viel sauberere Ausgabe und ist ideal, wenn Sie nur die Liste der von Git verfolgten Dateien anzeigen möchten.
Mico
Gibt es eine Möglichkeit, nur Direcotries aufzulisten git ls-directories ?
Ramesh Pareek
12
Warnung: Wenn Sie sich in einem Unterverzeichnis befinden, werden nur Dateien unter diesem Baum aufgelistet. Die Frage lautet "Alle Dateien im Repository". Dies gilt jedoch nur, wenn Sie sich im Stammverzeichnis des Repos befinden.
wim
2

git ls-tree --full-tree -r HEADund git ls-filesalle Dateien auf einmal zurückgeben. Bei einem großen Projekt mit Hunderten oder Tausenden von Dateien und wenn Sie an einer bestimmten Datei / einem bestimmten Verzeichnis interessiert sind, ist es möglicherweise bequemer, bestimmte Verzeichnisse zu durchsuchen. Sie können dies tun, indem Sie die ID / SHA-1 des Verzeichnisses abrufen, das Sie durchsuchen und dann verwenden möchten git cat-file -p [ID/SHA-1 of directory]. Zum Beispiel:

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

Im obigen Beispiel 14032aabd85b43a058cfc7025dd4fa9dd325ea97ist die ID / SHA-1 des Verzeichnisses, das ich untersuchen wollte. In diesem Fall war das Ergebnis, dass vier Dateien in diesem Verzeichnis von meinem Git-Repo verfolgt wurden. Wenn das Verzeichnis zusätzliche Dateien hätte, würde dies bedeuten, dass diese zusätzlichen Dateien nicht verfolgt werden. Sie können git add <file>...natürlich Dateien mit hinzufügen .

Jaime Montoya
quelle
Sie können auch einfach cdin das Verzeichnis gehen, an dem Sie interessiert sind, und es weglassen --full-tree.
Nathan