Einrichtung und Konfiguration
Projekte holen und erstellen
Grundlegende Snapshots
Branching und Merging
Projekte teilen und aktualisieren
Inspektion und Vergleich
Patching
Debugging
Externe Systeme
Server-Administration
Anleitungen
- gitattributes
- Konventionen der Kommandozeile
- Tägliches Git
- Häufig gestellte Fragen (FAQ)
- Glossar
- Hooks
- gitignore
- gitmodules
- Revisionen
- Submodule
- Tutorial
- Workflows
- Alle Anleitungen...
Administration
Plumbing-Befehle
- 2.46.2 → 2.52.0 keine Änderungen
-
2.46.1
2024-09-13
- 2.44.1 → 2.46.0 keine Änderungen
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 keine Änderungen
-
2.43.0
2023-11-20
- 2.42.1 → 2.42.4 keine Änderungen
-
2.42.0
2023-08-21
- 2.40.1 → 2.41.3 keine Änderungen
-
2.40.0
2023-03-12
- 2.39.1 → 2.39.5 keine Änderungen
-
2.39.0
2022-12-12
- 2.38.1 → 2.38.5 keine Änderungen
-
2.38.0
2022-10-02
- 2.36.1 → 2.37.7 keine Änderungen
-
2.36.0
2022-04-18
- 2.35.1 → 2.35.8 keine Änderungen
-
2.35.0
2022-01-24
- 2.31.1 → 2.34.8 keine Änderungen
-
2.31.0
2021-03-15
- 2.30.2 → 2.30.9 keine Änderungen
-
2.30.1
2021-02-08
-
2.30.0
2020-12-27
- 2.27.1 → 2.29.3 keine Änderungen
-
2.27.0
2020-06-01
- 2.22.1 → 2.26.3 keine Änderungen
-
2.22.0
2019-06-07
- 2.18.1 → 2.21.4 keine Änderungen
-
2.18.0
2018-06-21
- 2.17.0 → 2.17.6 keine Änderungen
-
2.16.6
2019-12-06
- 2.14.6 → 2.15.4 keine Änderungen
-
2.13.7
2018-05-22
- 2.12.5 keine Änderungen
-
2.11.4
2017-09-22
-
2.10.5
2017-09-22
-
2.9.5
2017-07-30
-
2.8.6
2017-07-30
- 2.2.3 → 2.7.6 keine Änderungen
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
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
--deletedund--modifiedangegeben werden. Wenn eine der Optionen-t,--unmergedoder--stageverwendet 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-standardeinfacher 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
-soder-uist nicht sinnvoll. - -t
-
Status-Tags zusammen mit Dateinamen anzeigen. Beachten Sie, dass für Skripting-Zwecke git-status[1]
--porcelainund git-diff-files[1]--name-statusfast immer überlegene Alternativen sind; Benutzer sollten git-status[1]--shortoder git-diff[1]--name-statusfü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, wobeiXXHexadezimalziffern sind, wird zu dem Zeichen mit dem Hex-CodeXXinterpoliert; z.B. interpoliert%x00zu \0 (NUL),%x09zu \t (TAB) und %x0a zu \n (LF). --format kann nicht mit-s,-o,-k,-t,--resolve-undound--eolkombiniert 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
commitodertreeist). 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
-
Das Kommandozeilenflag --exclude=<muster> gibt ein einzelnes Muster an. Muster werden in der gleichen Reihenfolge angegeben, in der sie auf der Kommandozeile erscheinen.
-
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.
-
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
-
Die von der Konfigurationsvariable
core.excludesfileangegebene Datei, falls vorhanden, oder die Datei$XDG_CONFIG_HOME/git/ignore. -
Die Datei
$GIT_DIR/info/exclude.
über die Option --exclude-from=.
GIT
Teil der git[1] Suite