English ▾ Themen ▾ Neueste Version ▾ git-ls-files zuletzt aktualisiert in 2.46.1

NAME

git-ls-files - Informationen über Dateien im Index und im Arbeitsbaum anzeigen

SYNOPSIS

git ls-files [-z] [-t] [-v] [-f]
		[-c|--cached] [-d|--deleted] [-o|--others] [-i|--ignored]
		[-s|--stage] [-u|--unmerged] [-k|--killed] [-m|--modified]
		[--resolve-undo]
		[--directory [--no-empty-directory]] [--eol]
		[--deduplicate]
		[-x <pattern>|--exclude=<pattern>]
		[-X <file>|--exclude-from=<file>]
		[--exclude-per-directory=<file>]
		[--exclude-standard]
		[--error-unmatch] [--with-tree=<tree-ish>]
		[--full-name] [--recurse-submodules]
		[--abbrev[=<n>]] [--format=<format>] [--] [<file>…​]

BESCHREIBUNG

Dieser Befehl gleicht die Dateiliste im Index mit der tatsächlichen Liste des Arbeitsverzeichnisses ab und zeigt verschiedene Kombinationen der beiden an.

Mehrere Flags können verwendet werden, um zu bestimmen, welche Dateien angezeigt werden, und jede Datei kann mehrmals ausgegeben werden, wenn es mehrere Einträge im Index gibt oder wenn mehrere Status für die relevanten Dateiauswahloptionen zutreffen.

OPTIONEN

-c
--cached

Alle von Git im Index gespeicherten Dateien anzeigen, d.h. alle getrackten Dateien. (Dies ist die Standardeinstellung, wenn keine Optionen -c/-s/-d/-o/-u/-k/-m/--resolve-undo angegeben sind.)

-d
--deleted

Dateien mit einer nicht gestagten Löschung anzeigen

-m
--modified

Dateien mit einer nicht gestagten Änderung anzeigen (beachten Sie, dass eine nicht gestagte Löschung auch als nicht gestagte Änderung zählt)

-o
--others

Andere (d.h. nicht getrackte) Dateien in der Ausgabe anzeigen

-i
--ignored

Nur ignorierte Dateien in der Ausgabe anzeigen. Muss mit entweder explizit -c oder -o verwendet werden. Beim Anzeigen von Dateien im Index (d.h. bei Verwendung mit -c) werden nur die Dateien ausgegeben, die einem Ausschlussmuster entsprechen. Beim Anzeigen von "anderen" Dateien (d.h. bei Verwendung mit -o) werden nur die angezeigt, die von einem Ausschlussmuster getroffen werden. Standard-Ignorierungsregeln werden nicht automatisch aktiviert; daher ist mindestens eine der --exclude* Optionen erforderlich.

-s
--stage

Modus-Bits, Objektname und Stagenummer der gestagten Inhalte in der Ausgabe anzeigen.

--directory

Wenn ein ganzes Verzeichnis als "andere" klassifiziert wird, nur dessen Namen (mit einem abschließenden Schrägstrich) und nicht dessen gesamten Inhalt anzeigen. Hat keine Auswirkung ohne -o/--others.

--no-empty-directory

Leere Verzeichnisse nicht auflisten. Hat keine Auswirkung ohne --directory.

-u
--unmerged

Informationen über nicht zusammengeführte Dateien in der Ausgabe anzeigen, aber keine anderen getrackten Dateien anzeigen (erzwingt --stage, überschreibt --cached).

-k
--killed

Nicht getrackte Dateien auf dem Dateisystem anzeigen, die aufgrund von Datei-/Verzeichniskonflikten entfernt werden müssen, damit getrackte Dateien auf das Dateisystem geschrieben werden können.

--resolve-undo

Dateien anzeigen, die Resolve-Undo-Informationen im Index haben, zusammen mit ihren Resolve-Undo-Informationen. (Resolve-Undo-Informationen sind das, was zur Implementierung von "git checkout -m $PFAD" verwendet wird, d.h. um versehentlich aufgelöste Merge-Konflikte wiederherzustellen)

-z

Null-Byte-Terminierung der Ausgabe und keine Dateinamen in Anführungszeichen setzen. Siehe OUTPUT unten für weitere Informationen.

--deduplicate

Wenn nur Dateinamen angezeigt werden, Duplikate unterdrücken, die durch mehrere Stufen während eines Merges entstehen können, oder wenn gleichzeitig --deleted und --modified angegeben werden. Wenn eine der Optionen -t, --unmerged oder --stage verwendet wird, hat diese Option keine Auswirkung.

-x <muster>
--exclude=<muster>

Nicht getrackte Dateien, die dem Muster entsprechen, überspringen. Beachten Sie, dass das Muster ein Shell-Wildcardmuster ist. Siehe EXCLUDE PATTERNS unten für weitere Informationen.

-X <datei>
--exclude-from=<datei>

Ausschlussmuster aus <datei> lesen; 1 pro Zeile.

--exclude-per-directory=<datei>

Zusätzliche Ausschlussmuster lesen, die nur für das Verzeichnis und seine Unterverzeichnisse in <datei> gelten. Wenn Sie versuchen, die Funktionsweise von Porcelain-Befehlen zu emulieren, ist die Verwendung der Option --exclude-standard einfacher und gründlicher.

--exclude-standard

Die Standard-Git-Ausschlüsse hinzufügen: .git/info/exclude, .gitignore in jedem Verzeichnis und die globale Ausschlussdatei des Benutzers.

--error-unmatch

Wenn eine Datei <file> nicht im Index erscheint, dies als Fehler behandeln (Rückgabe 1).

--with-tree=<tree-ish>

Wenn --error-unmatch verwendet wird, um die vom Benutzer bereitgestellten Argumente <file> (d.h. Pfadmuster) zu Pfaden zu erweitern, so tun, als ob Pfade, die seit dem benannten <tree-ish> im Index entfernt wurden, immer noch vorhanden wären. Die Verwendung dieser Option mit den Optionen -s oder -u ist nicht sinnvoll.

-t

Status-Tags zusammen mit Dateinamen anzeigen. Beachten Sie, dass für Skripting-Zwecke git-status[1] --porcelain und git-diff-files[1] --name-status fast immer überlegene Alternativen sind; Benutzer sollten git-status[1] --short oder git-diff[1] --name-status für benutzerfreundlichere Alternativen in Betracht ziehen.

Diese Option liefert einen Grund für die Anzeige jedes Dateinamens in Form eines Status-Tags (dem ein Leerzeichen und dann der Dateiname folgt). Die Status-Tags sind alles einzelne Zeichen aus der folgenden Liste

H

getrackte Datei, die weder unmerged noch skip-worktree ist

S

getrackte Datei, die skip-worktree ist

M

getrackte Datei, die unmerged ist

R

getrackte Datei mit ungestagtem Entfernen/Löschen

C

getrackte Datei mit ungestagter Änderung/Änderung

K

Nicht getrackte Pfade, die Teil von Datei-/Verzeichniskonflikten sind, die das Auschecken von getrackten Dateien verhindern

?

nicht getrackte Datei

U

Datei mit Resolve-Undo-Informationen

-v

Ähnlich wie -t, aber Kleinbuchstaben für Dateien verwenden, die als assume unchanged markiert sind (siehe git-update-index[1]).

-f

Ähnlich wie -t, aber Kleinbuchstaben für Dateien verwenden, die als fsmonitor valid markiert sind (siehe git-update-index[1]).

--full-name

Wenn von einem Unterverzeichnis aus ausgeführt, gibt der Befehl normalerweise Pfade relativ zum aktuellen Verzeichnis aus. Diese Option erzwingt, dass Pfade relativ zum obersten Verzeichnis des Projekts ausgegeben werden.

--recurse-submodules

Ruft ls-files rekursiv auf jedes aktive Submodul im Repository auf. Derzeit gibt es nur Unterstützung für die Modi --cached und --stage.

--abbrev[=<n>]

Anstatt die vollständigen 40-stelligen Hexadezimalobjektzeilen anzuzeigen, wird der kürzeste Präfix angezeigt, der mindestens <n> Hexadezimalstellen lang ist und eindeutig auf das Objekt verweist. Eine nicht standardmäßige Anzahl von Ziffern kann mit --abbrev=<n> angegeben werden.

--debug

Nach jeder Zeile, die eine Datei beschreibt, werden weitere Daten zu ihrem Cache-Eintrag hinzugefügt. Dies soll so viele Informationen wie möglich für die manuelle Inspektion anzeigen; das genaue Format kann sich jederzeit ändern.

--eol

<eolinfo> und <eolattr> von Dateien anzeigen. <eolinfo> ist die von Git verwendete Dateiinhaltserkennung, wenn das Attribut "text" auf "auto" gesetzt ist (oder nicht gesetzt und core.autocrlf nicht false ist). <eolinfo> ist entweder "-text", "none", "lf", "crlf", "mixed" oder "".

"" bedeutet, dass die Datei keine reguläre Datei ist, sie sich nicht im Index befindet oder im Arbeitsbaum nicht zugänglich ist.

<eolattr> ist das Attribut, das beim Auschecken oder Committen verwendet wird. Es ist entweder "", "-text", "text", "text=auto", "text eol=lf", "text eol=crlf". Seit Git 2.10 werden "text=auto eol=lf" und "text=auto eol=crlf" unterstützt.

Sowohl die <eolinfo> im Index ("i/<eolinfo>") als auch im Arbeitsbaum ("w/<eolinfo>") werden für reguläre Dateien angezeigt, gefolgt von ("attr/<eolattr>").

--sparse

Wenn der Index "sparse" ist, die "sparse"-Verzeichnisse anzeigen, ohne die enthaltenen Dateien zu erweitern. "Sparse"-Verzeichnisse werden mit einem abschließenden Schrägstrich angezeigt, z.B. "x/" für ein "sparse"-Verzeichnis "x".

--format=<format>

Eine Zeichenkette, die %(feldname) aus dem angezeigten Ergebnis interpoliert. Sie interpoliert auch %% zu %, und %xXX, wobei XX Hexadezimalziffern sind, wird zu dem Zeichen mit dem Hex-Code XX interpoliert; z.B. interpoliert %x00 zu \0 (NUL), %x09 zu \t (TAB) und %x0a zu \n (LF). --format kann nicht mit -s, -o, -k, -t, --resolve-undo und --eol kombiniert werden.

--

Interpretiere keine weiteren Argumente mehr als Optionen.

<datei>

Dateien, die angezeigt werden sollen. Wenn keine Dateien angegeben werden, werden alle Dateien angezeigt, die den anderen angegebenen Kriterien entsprechen.

AUSGABE

git ls-files gibt nur die Dateinamen aus, es sei denn, --stage wird angegeben, in welchem Fall es folgendes ausgibt

[<tag> ]<mode> <object> <stage> <file>

git ls-files --eol zeigt i/<eolinfo><LEERZEICHEN>w/<eolinfo><LEERZEICHEN>attr/<eolattr><LEERZEICHEN*><TAB><datei>

git ls-files --unmerged und git ls-files --stage können verwendet werden, um detaillierte Informationen über nicht zusammengeführte Pfade zu untersuchen.

Für einen nicht zusammengeführten Pfad zeichnet der Index anstelle der Aufzeichnung eines einzelnen Modus/SHA-1-Paares bis zu drei solcher Paare auf; eines aus Baum O in Stufe 1, A in Stufe 2 und B in Stufe 3. Diese Informationen können vom Benutzer (oder dem Porcelain) verwendet werden, um zu sehen, was schließlich am Pfad aufgezeichnet werden sollte. (siehe git-read-tree[1] für weitere Informationen über den Status)

Ohne die Option -z werden Pfadnamen mit "ungewöhnlichen" Zeichen wie für die Konfigurationsvariable core.quotePath erklärt (siehe git-config[1]) in Anführungszeichen gesetzt. Bei Verwendung von -z wird der Dateiname unverändert ausgegeben und die Zeile wird mit einem NUL-Byte beendet.

Es ist möglich, in einem benutzerdefinierten Format auszugeben, indem die Option --format verwendet wird, die verschiedene Felder mithilfe der Notation %(feldname) interpolieren kann. Wenn Sie zum Beispiel nur an den Feldern "objectname" und "path" interessiert sind, können Sie mit einem spezifischen "--format" wie folgendem ausführen

git ls-files --format='%(objectname) %(path)'

FELDNAMEN

Die Art und Weise, wie jeder Pfad angezeigt wird, kann durch die Option --format=<format> angepasst werden, wobei die %(fieldname) in der <format>-Zeichenkette für verschiedene Aspekte des Indexeintrags interpoliert werden. Die folgenden "feldnamen" werden verstanden

objectmode

Der Modus der Datei, der im Index aufgezeichnet wird.

objecttype

Der Objekttyp der Datei, der im Index aufgezeichnet wird.

objectname

Der Name der Datei, der im Index aufgezeichnet wird.

objectsize[:padded]

Die Objektgröße der Datei, die im Index aufgezeichnet wird ("-" wenn das Objekt ein commit oder tree ist). Sie unterstützt auch ein aufgefülltes Format der Größe mit "%(objectsize:padded)".

stage

Die Stufe der Datei, die im Index aufgezeichnet wird.

eolinfo:index
eolinfo:worktree

Die <eolinfo> (siehe Beschreibung der Option --eol) der Inhalte im Index oder im Arbeitsbaum für den Pfad.

eolattr

Das <eolattr> (siehe Beschreibung der Option --eol), das auf den Pfad angewendet wird.

path

Der Pfadname der Datei, der im Index aufgezeichnet wird.

AUSSCHLUSS-MUSTER

git ls-files kann eine Liste von "Ausschlussmustern" verwenden, wenn es den Verzeichnisbaum durchläuft und Dateien findet, die angezeigt werden sollen, wenn die Flags --others oder --ignored angegeben sind. gitignore[5] gibt das Format der Ausschlussmuster an.

Diese Ausschlussmuster können aus den folgenden Orten in dieser Reihenfolge angegeben werden

  1. Das Kommandozeilenflag --exclude=<muster> gibt ein einzelnes Muster an. Muster werden in der gleichen Reihenfolge angegeben, in der sie auf der Kommandozeile erscheinen.

  2. Das Kommandozeilenflag --exclude-from=<datei> gibt eine Datei an, die eine Liste von Mustern enthält. Muster werden in der gleichen Reihenfolge angegeben, in der sie in der Datei erscheinen.

  3. Das Kommandozeilenflag --exclude-per-directory=<name> gibt einen Namen der Datei in jedem Verzeichnis an, das git ls-files untersucht, normalerweise .gitignore. Dateien in tieferen Verzeichnissen haben Vorrang. Muster werden in der gleichen Reihenfolge angegeben, in der sie in den Dateien erscheinen.

Ein auf der Kommandozeile mit --exclude angegebenes Muster oder ein aus der Datei mit --exclude-from gelesenes Muster ist relativ zum oberen Verzeichnisbaum. Ein aus einer Datei mit --exclude-per-directory gelesenes Muster ist relativ zu dem Verzeichnis, in dem die Musterdatei erscheint.

Im Allgemeinen sollten Sie --exclude-standard verwenden, wenn Sie möchten, dass die Ausschlussregeln auf die gleiche Weise angewendet werden, wie es Porcelain-Befehle tun. Um das zu emulieren, was --exclude-standard angibt, können Sie --exclude-per-directory=.gitignore angeben und dann

  1. Die von der Konfigurationsvariable core.excludesfile angegebene Datei, falls vorhanden, oder die Datei $XDG_CONFIG_HOME/git/ignore.

  2. Die Datei $GIT_DIR/info/exclude.

über die Option --exclude-from=.

GIT

Teil der git[1] Suite