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.43.1 → 2.52.0 keine Änderungen
-
2.43.0
2023-11-20
- 2.36.1 → 2.42.4 keine Änderungen
-
2.36.0
2022-04-18
- 2.1.4 → 2.35.8 keine Änderungen
-
2.0.5
2014-12-17
SYNOPSIS
git checkout-index [-u] [-q] [-a] [-f] [-n] [--prefix=<string>] [--stage=<number>|all] [--temp] [--ignore-skip-worktree-bits] [-z] [--stdin] [--] [<file>…]
BESCHREIBUNG
Kopiert alle aufgeführten Dateien aus dem Index in das Arbeitsverzeichnis (bestehende Dateien werden nicht überschrieben).
OPTIONEN
- -u
- --index
-
Aktualisiert die Stat-Informationen für die ausgecheckten Einträge in der Indexdatei.
- -q
- --quiet
-
Sei ruhig, wenn Dateien existieren oder nicht im Index sind
- -f
- --force
-
Erzwingt das Überschreiben bestehender Dateien
- -a
- --all
-
checked alle Dateien im Index aus, mit Ausnahme derer, bei denen das skip-worktree-Bit gesetzt ist (siehe
--ignore-skip-worktree-bits). Kann nicht zusammen mit expliziten Dateinamen verwendet werden. - -n
- --no-create
-
Checked keine neuen Dateien aus, aktualisiert nur bereits ausgecheckte Dateien.
- --prefix=<string>
-
Beim Erstellen von Dateien, fügt <string> (normalerweise ein Verzeichnis inklusive einem abschließenden /) vor.
- --stage=<number>|all
-
Anstatt nicht zusammengeführte Einträge auszuchecken, werden die Dateien aus der benannten Stufe kopiert. <number> muss zwischen 1 und 3 liegen. Hinweis: --stage=all impliziert automatisch --temp.
- --temp
-
Anstatt die Dateien in das Arbeitsverzeichnis zu kopieren, werden die Inhalte in temporäre Dateien geschrieben. Die temporären Namenszuordnungen werden auf stdout geschrieben.
- --ignore-skip-worktree-bits
-
Checked alle Dateien aus, einschließlich derer, bei denen das skip-worktree-Bit gesetzt ist.
- --stdin
-
Anstatt eine Liste von Pfaden von der Kommandozeile zu nehmen, wird die Liste der Pfade von der Standardeingabe gelesen. Pfade werden standardmäßig durch LF (d.h. ein Pfad pro Zeile) getrennt.
- -z
-
Nur sinnvoll mit
--stdin; Pfade werden durch ein NUL-Zeichen anstelle von LF getrennt. - --
-
Interpretiere keine weiteren Argumente mehr als Optionen.
Die Reihenfolge der Flags spielte früher eine Rolle, aber nicht mehr.
Nur git checkout-index auszuführen, tut nichts. Wahrscheinlich meintest du git checkout-index -a. Und wenn du es erzwingen willst, dann willst du git checkout-index -f -a.
Intuitivität ist hier nicht das Ziel. Wiederholbarkeit ist es. Der Grund für das Verhalten "keine Argumente bedeuten keine Arbeit" ist, dass man aus Skripten Folgendes tun können sollte:
$ find . -name '*.h' -print0 | xargs -0 git checkout-index -f --
was alle vorhandenen *.h-Dateien erzwingt, durch ihre zwischengespeicherten Kopien zu ersetzen. Wenn eine leere Kommandozeile "alle" impliziert hätte, dann hätte dies alles im Index mit Gewalt aktualisiert, was nicht beabsichtigt war. Aber da git checkout-index --stdin akzeptiert, wäre es schneller, Folgendes zu verwenden:
$ find . -name '*.h' -print0 | git checkout-index -f -z --stdin
Das -- ist einfach eine gute Idee, wenn man weiß, dass der Rest Dateinamen sein werden; es verhindert Probleme mit einem Dateinamen wie z.B. -a. Die Verwendung von -- ist wahrscheinlich eine gute Vorgehensweise in Skripten.
Verwendung von --temp oder --stage=all
Wenn --temp verwendet wird (oder von --stage=all impliziert wird), erstellt git checkout-index für jeden ausgecheckten Index-Eintrag eine temporäre Datei. Der Index wird nicht mit Stat-Informationen aktualisiert. Diese Optionen können nützlich sein, wenn der Aufrufer alle Stufen aller nicht zusammengeführten Einträge benötigt, damit die nicht zusammengeführten Dateien von einem externen Merge-Tool verarbeitet werden können.
Eine Liste, die die Zuordnung von temporären Dateinamen zu verfolgten Pfadnamen angibt, wird auf stdout geschrieben. Das Listenformat hat zwei Variationen
-
tempname TAB pfad RS
Das erste Format wird verwendet, wenn
--stageweggelassen wird oder nicht--stage=allist. Das Feld tempname ist der temporäre Dateiname, der den Dateiinhalt enthält, und pfad ist der verfolgte Pfadname im Index. Nur die angeforderten Einträge werden ausgegeben. -
stage1temp Leerzeichen stage2temp Leerzeichen stage3tmp TAB pfad RS
Das zweite Format wird verwendet, wenn
--stage=all. Die drei Stufen-Temporärfelder (stage1temp, stage2temp, stage3temp) listen den Namen der temporären Datei auf, wenn ein Stufeneintrag im Index vorhanden ist, oder., wenn kein Stufeneintrag vorhanden ist. Pfade, die nur einen Stufe 0 Eintrag haben, werden immer aus der Ausgabe weggelassen.
In beiden Formaten ist RS (der Record Separator) standardmäßig ein Zeilenumbruch (newline), wird aber zu einem Null-Byte, wenn -z auf der Kommandozeile übergeben wurde. Die temporären Dateinamen sind immer sichere Zeichenketten; sie enthalten niemals Verzeichnistrenner oder Leerzeichen. Das Pfadfeld ist immer relativ zum aktuellen Verzeichnis und die temporären Dateinamen sind immer relativ zum obersten Verzeichnis.
Wenn das Objekt, das in eine temporäre Datei kopiert wird, ein symbolischer Link ist, wird der Inhalt des Links in eine normale Datei geschrieben. Es obliegt dem Endbenutzer oder der Porcelain, diese Information zu nutzen.
BEISPIELE
- Zum Aktualisieren und Auffrischen nur der bereits ausgecheckten Dateien
-
$ git checkout-index -n -f -a && git update-index --ignore-missing --refresh
- Verwendung von git checkout-index zum "Exportieren eines gesamten Baumes"
-
Die Prefix-Fähigkeit macht es im Grunde trivial, git checkout-index als "Export als Baum" Funktion zu verwenden. Lesen Sie einfach den gewünschten Baum in den Index und führen Sie aus:
$ git checkout-index --prefix=git-export-dir/ -a
gitcheckout-indexwird den Index in das angegebene Verzeichnis "exportieren".Das abschließende "/" ist wichtig. Der exportierte Name wird buchstäblich einfach mit dem angegebenen String vorangestellt. Vergleichen Sie dies mit dem folgenden Beispiel.
- Dateien mit einem Präfix exportieren
-
$ git checkout-index --prefix=.merged- Makefile
Dies checked die aktuell zwischengespeicherte Kopie von
Makefilein die Datei.merged-Makefileaus.
GIT
Teil der git[1] Suite