2013-03-25 3 views
324

Wie kann ich mithilfe der Befehlszeile git eine Liste der Dateien anzeigen lassen, die im Repository verfolgt werden?Wie kann ich git eine Liste der Dateien anzeigen lassen, die verfolgt werden?

+2

möglich duplikat von [Dateien in lokalen git repo auflisten?] (Http://stackoverflow.com/questions/8533202/list-files-in-local-git-repo) –

+0

Ich glaube es ist. Aber es fühlt sich nicht richtig an, das als dup zu markieren, wenn dies eine bessere Antwort hat. – lindhe

+2

in einem Paralleluniversum, es ist unheimlich, wie ähnlich [diese Frage] (https://superuser.com/q/429693/571125) enthält alle Antworten, aber jedes mit seinem eigenen unverwechselbaren Flair. –

Antwort

392

Wenn Sie alle Dateien auflisten möchten zur Zeit unter dem Zweig master verfolgt wird, können Sie diesen Befehl verwenden:

git ls-tree -r master --name-only 

Wenn Sie eine Liste von Dateien wollen, die jemals existiert (dh einschließlich der gelöschten Dateien):

git log --pretty=format: --name-only --diff-filter=A | sort - | sed '/^$/d' 
+26

Verwenden Sie git ls-tree -r HEAD - Nur-Namen, wenn Sie Dateien des aktuellen Zweigs auflisten möchten – Ramast

+1

Warum werden Verzeichnisse nicht aufgelistet? – Shuzheng

+7

@NicolasLykkeIversen - 'git' versioniert Verzeichnisse nicht direkt. Stattdessen speichert es Dateien und ihre Pfade. 'ls-tree' gibt alle versionierten Dateien aus. Um diese Unterscheidung besser zu verstehen, versuchen Sie, ein leeres Verzeichnis in 'git' zu staging. Das leere Verzeichnis wird niemals in den gestuften Änderungen angezeigt. Die einzige Möglichkeit, ein solches leeres Verzeichnis zu versionieren, besteht darin, eine Datei tatsächlich unter dem Verzeichnis zu versionieren. Für Anwendungsfälle, in denen Sie ein solches leeres Platzhalterverzeichnis in der Versionskontrolle benötigen, können Sie eine Dummy-Datei unter dem Verzeichnis und der Version erstellen. Ich hoffe, die Erklärung ist klar. – Tuxdude

132

Die von git verwalteten Dateien werden von git ls-files angezeigt. Schauen Sie sich die Manual-Seite an.

+2

Das scheint nur Dateien auf oder unter dem aktuellen Verzeichnis anzuzeigen. –

+6

Darf ich das ändern, um die relevanten Abschnitte der Manual Page einzuschließen? –

+0

@NathanBasanese vielleicht können Sie eine weitere Antwort mit dieser Information hinzufügen. –

Verwandte Themen