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.52.0
2025-11-17
-
2.51.2
2025-10-27
-
2.51.1
2025-10-15
-
2.51.0
2025-08-18
- 2.50.1 keine Änderungen
-
2.50.0
2025-06-16
- 2.49.1 keine Änderungen
-
2.49.0
2025-03-14
- 2.48.2 keine Änderungen
-
2.48.1
2025-01-13
-
2.48.0
2025-01-10
- 2.47.3 keine Änderungen
-
2.47.2
2024-11-26
-
2.47.1
2024-11-25
-
2.47.0
2024-10-06
- 2.46.4 keine Änderungen
-
2.46.3
2024-11-26
-
2.46.2
2024-09-23
-
2.46.1
2024-09-13
-
2.46.0
2024-07-29
- 2.45.4 keine Änderungen
-
2.45.3
2024-11-26
- 2.45.1 → 2.45.2 keine Änderungen
-
2.45.0
2024-04-29
- 2.44.4 keine Änderungen
-
2.44.3
2024-11-26
- 2.44.1 → 2.44.2 keine Änderungen
-
2.44.0
2024-02-23
- 2.43.7 keine Änderungen
-
2.43.6
2024-11-26
- 2.43.2 → 2.43.5 keine Änderungen
-
2.43.1
2024-02-09
-
2.43.0
2023-11-20
-
2.42.4
2024-11-26
- 2.42.2 → 2.42.3 keine Änderungen
-
2.42.1
2023-11-02
-
2.42.0
2023-08-21
-
2.41.3
2024-11-26
- 2.41.1 → 2.41.2 keine Änderungen
-
2.41.0
2023-06-01
-
2.40.4
2024-11-26
- 2.40.1 → 2.40.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.3 → 2.38.5 keine Änderungen
-
2.38.2
2022-12-11
-
2.38.1
2022-10-07
-
2.38.0
2022-10-02
- 2.37.5 → 2.37.7 keine Änderungen
-
2.37.4
2022-10-06
- 2.37.3 keine Änderungen
-
2.37.2
2022-08-11
- 2.37.1 keine Änderungen
-
2.37.0
2022-06-27
- 2.36.4 → 2.36.6 keine Änderungen
-
2.36.3
2022-10-06
-
2.36.2
2022-06-23
- 2.36.1 keine Änderungen
-
2.36.0
2022-04-18
- 2.35.6 → 2.35.8 keine Änderungen
-
2.35.5
2022-10-06
-
2.35.4
2022-06-23
-
2.35.3
2022-04-13
-
2.35.2
2022-03-23
- 2.35.1 keine Änderungen
-
2.35.0
2022-01-24
- 2.34.6 → 2.34.8 keine Änderungen
-
2.34.5
2022-10-06
-
2.34.4
2022-06-23
-
2.34.3
2022-04-13
-
2.34.2
2022-03-23
- 2.34.1 keine Änderungen
-
2.34.0
2021-11-15
- 2.33.6 → 2.33.8 keine Änderungen
-
2.33.5
2022-10-06
-
2.33.4
2022-06-23
-
2.33.3
2022-04-13
-
2.33.2
2022-03-23
-
2.33.1
2021-10-12
-
2.33.0
2021-08-16
- 2.32.5 → 2.32.7 keine Änderungen
-
2.32.4
2022-10-06
-
2.32.3
2022-06-23
-
2.32.2
2022-04-13
-
2.32.1
2022-03-23
-
2.32.0
2021-06-06
- 2.31.6 → 2.31.8 keine Änderungen
-
2.31.5
2022-10-06
-
2.31.4
2022-06-23
-
2.31.3
2022-04-13
-
2.31.2
2022-03-23
-
2.31.1
2021-03-26
-
2.31.0
2021-03-15
- 2.30.7 → 2.30.9 keine Änderungen
-
2.30.6
2022-10-06
-
2.30.5
2022-06-23
-
2.30.4
2022-04-13
-
2.30.3
2022-03-23
- 2.30.2 keine Änderungen
-
2.30.1
2021-02-08
-
2.30.0
2020-12-27
- 2.29.1 → 2.29.3 keine Änderungen
-
2.29.0
2020-10-19
- 2.28.1 keine Änderungen
-
2.28.0
2020-07-27
- 2.27.1 keine Änderungen
-
2.27.0
2020-06-01
- 2.26.1 → 2.26.3 keine Änderungen
-
2.26.0
2020-03-22
- 2.25.3 → 2.25.5 keine Änderungen
-
2.25.2
2020-03-17
-
2.25.1
2020-02-17
-
2.25.0
2020-01-13
- 2.24.1 → 2.24.4 keine Änderungen
-
2.24.0
2019-11-04
- 2.23.1 → 2.23.4 keine Änderungen
-
2.23.0
2019-08-16
- 2.22.2 → 2.22.5 keine Änderungen
-
2.22.1
2019-08-11
-
2.22.0
2019-06-07
- 2.21.1 → 2.21.4 keine Änderungen
-
2.21.0
2019-02-24
- 2.20.1 → 2.20.5 keine Änderungen
-
2.20.0
2018-12-09
- 2.19.3 → 2.19.6 keine Änderungen
-
2.19.2
2018-11-21
- 2.19.1 keine Änderungen
-
2.19.0
2018-09-10
- 2.18.1 → 2.18.5 keine Änderungen
-
2.18.0
2018-06-21
- 2.17.1 → 2.17.6 keine Änderungen
-
2.17.0
2018-04-02
-
2.16.6
2019-12-06
-
2.15.4
2019-12-06
-
2.14.6
2019-12-06
-
2.13.7
2018-05-22
-
2.12.5
2017-09-22
-
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.7.6
2017-07-30
-
2.6.7
2017-05-05
-
2.5.6
2017-05-05
-
2.4.12
2017-05-05
-
2.3.10
2015-09-28
-
2.2.3
2015-09-04
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
SYNOPSIS
git config list [<file-option>] [<display-option>] [--includes] git config get [<file-option>] [<display-option>] [--includes] [--all] [--regexp] [--value=<pattern>] [--fixed-value] [--default=<default>] [--url=<url>] <name> git config set [<file-option>] [--type=<type>] [--all] [--value=<pattern>] [--fixed-value] <name> <value> git config unset [<file-option>] [--all] [--value=<pattern>] [--fixed-value] <name> git config rename-section [<file-option>] <old-name> <new-name> git config remove-section [<file-option>] <name> git config edit [<file-option>] git config [<file-option>] --get-colorbool <name> [<stdout-is-tty>]
BESCHREIBUNG
Mit diesem Befehl können Sie Optionen abfragen/festlegen/ersetzen/entfernen. Der Name ist tatsächlich der Abschnitt und der Schlüssel, getrennt durch einen Punkt, und der Wert wird escaped.
Mehrere Zeilen können zu einer Option hinzugefügt werden, indem die Option --append verwendet wird. Wenn Sie eine Option aktualisieren oder entfernen möchten, die auf mehreren Zeilen vorkommen kann, muss --value=<muster> (das ein erweiterter regulärer Ausdruck ist, es sei denn, die Option --fixed-value wird angegeben) angegeben werden. Nur die vorhandenen Werte, die dem Muster entsprechen, werden aktualisiert oder entfernt. Wenn Sie die Zeilen behandeln möchten, die *nicht* dem Muster entsprechen, stellen Sie ihnen einfach ein einzelnes Ausrufezeichen voran (siehe auch BEISPIELE), aber beachten Sie, dass dies nur funktioniert, wenn die Option --fixed-value nicht verwendet wird.
Die Option --type=<typ> weist git config an, sicherzustellen, dass eingehende und ausgehende Werte unter dem angegebenen <typ> kanonisiert werden können. Wenn keine --type=<typ> angegeben wird, findet keine Kanonisierung statt. Aufrufer können einen vorhandenen --type-Spezifizierer mit --no-type entfernen.
Beim Lesen werden standardmäßig die Werte aus den System-, globalen und lokalen Repository-Konfigurationsdateien gelesen, und die Optionen --system, --global, --local, --worktree und --file <dateiname> können verwendet werden, um dem Befehl mitzuteilen, nur aus diesem Speicherort zu lesen (siehe DATEIEN).
Beim Schreiben wird der neue Wert standardmäßig in die lokale Repository-Konfigurationsdatei geschrieben, und die Optionen --system, --global, --worktree, --file <dateiname> können verwendet werden, um dem Befehl mitzuteilen, dorthin zu schreiben (Sie können --local sagen, aber das ist der Standard).
Dieser Befehl schlägt mit einem nicht-null-Status bei einem Fehler fehl. Einige Exit-Codes sind:
-
Der Abschnitt oder Schlüssel ist ungültig (ret=1),
-
es wurde kein Abschnitt oder Name angegeben (ret=2),
-
die Konfigurationsdatei ist ungültig (ret=3),
-
die Konfigurationsdatei kann nicht geschrieben werden (ret=4),
-
Sie versuchen, eine nicht existierende Option zu entfernen (ret=5),
-
Sie versuchen, eine Option zu entfernen/festzulegen, für die mehrere Zeilen übereinstimmen (ret=5), oder
-
Sie versuchen, einen ungültigen regulären Ausdruck zu verwenden (ret=6).
Bei Erfolg gibt der Befehl den Exit-Code 0 zurück.
Eine Liste aller verfügbaren Konfigurationsvariablen kann mit dem Befehl git help --config abgerufen werden.
BEFEHLE
- list
-
Listet alle in der Konfigurationsdatei gesetzten Variablen zusammen mit ihren Werten auf.
- get
-
Gibt den Wert des angegebenen Schlüssels aus. Wenn der Schlüssel mehrmals in der Konfiguration vorhanden ist, wird der letzte Wert ausgegeben. Wenn
--allangegeben wird, werden alle dem Schlüssel zugeordneten Werte ausgegeben. Gibt den Fehlercode 1 zurück, wenn der Schlüssel nicht vorhanden ist. - set
-
Legt den Wert für eine oder mehrere Konfigurationsoptionen fest. Standardmäßig weigert sich dieser Befehl, mehrwertige Konfigurationsoptionen zu schreiben. Die Übergabe von
--allersetzt alle mehrwertigen Konfigurationsoptionen durch den neuen Wert, während--value=alle Konfigurationsoptionen ersetzt, deren Werte dem angegebenen Muster entsprechen. - unset
-
Entfernt den Wert für eine oder mehrere Konfigurationsoptionen. Standardmäßig weigert sich dieser Befehl, mehrwertige Schlüssel zu entfernen. Die Übergabe von
--allentfernt alle mehrwertigen Konfigurationsoptionen, während--valuealle Konfigurationsoptionen entfernt, deren Werte dem angegebenen Muster entsprechen. - rename-section
-
Benennt den angegebenen Abschnitt in einen neuen Namen um.
- remove-section
-
Entfernt den angegebenen Abschnitt aus der Konfigurationsdatei.
- edit
-
Öffnet einen Editor zum Ändern der angegebenen Konfigurationsdatei; entweder
--system,--global,--local(Standard),--worktreeoder--file<config-file>.
OPTIONEN
- --replace-all
-
Das Standardverhalten ist, höchstens eine Zeile zu ersetzen. Dies ersetzt alle Zeilen, die dem Schlüssel entsprechen (und optional
--value=<muster>). - --append
-
Fügt eine neue Zeile zur Option hinzu, ohne bestehende Werte zu ändern. Dies ist dasselbe wie die Angabe von --value=^$ bei
set. - --comment <nachricht>
-
Fügt einen Kommentar am Ende neuer oder geänderter Zeilen hinzu.
Wenn <nachricht> mit einem oder mehreren Leerzeichen beginnt, gefolgt von "", wird sie unverändert verwendet. Wenn sie mit "" beginnt, wird ein Leerzeichen vorangestellt, bevor sie verwendet wird. Andernfalls wird eine Zeichenkette " # " (ein Leerzeichen, gefolgt von einem Hash, gefolgt von einem Leerzeichen) vorangestellt. Und die resultierende Zeichenkette wird unmittelbar nach dem für die Variable definierten Wert platziert. Die <nachricht> darf keine Zeilenumbruchzeichen enthalten (mehrzeilige Kommentare sind nicht gestattet).
- --all
-
Bei
get: Gibt alle Werte für einen mehrwertigen Schlüssel zurück. - --regexp
-
Bei
get: Interpretiert den Namen als regulären Ausdruck. Die reguläre Ausdrucksübereinstimmung ist derzeit Groß-/Kleinschreibung-sensitiv und erfolgt gegen eine kanonisierte Version des Schlüssels, bei der Abschnitts- und Variablennamen kleingeschrieben werden, Unterabschnittsnamen jedoch nicht. - --url=<URL>
-
Wenn ein zweigeteilter <name> als <abschnitt>.<schlüssel> angegeben wird, wird der Wert für <abschnitt>.<URL>.<schlüssel> zurückgegeben, dessen <URL>-Teil am besten zur angegebenen URL passt (wenn kein solcher Schlüssel existiert, wird der Wert für <abschnitt>.<schlüssel> als Fallback verwendet). Wenn nur der <abschnitt> als Name angegeben wird, geschieht dies für alle Schlüssel im Abschnitt und sie werden aufgelistet. Gibt den Fehlercode 1 zurück, wenn kein Wert gefunden wird.
- --global
-
Zum Schreiben von Optionen: schreibt in die globale Datei
~/.gitconfiganstelle von.git/configim Repository, schreibt in die Datei$XDG_CONFIG_HOME/git/config, wenn diese Datei existiert und die Datei~/.gitconfignicht.Zum Lesen von Optionen: liest nur aus der globalen Datei
~/.gitconfigund aus$XDG_CONFIG_HOME/git/configanstelle von allen verfügbaren Dateien.Siehe auch DATEIEN.
- --system
-
Zum Schreiben von Optionen: schreibt in die systemweite Datei
$(prefix)/etc/gitconfiganstelle von.git/configim Repository.Zum Lesen von Optionen: liest nur aus der systemweiten Datei
$(prefix)/etc/gitconfiganstelle von allen verfügbaren Dateien.Siehe auch DATEIEN.
- --local
-
Zum Schreiben von Optionen: schreibt in die Datei
.git/configim Repository. Dies ist das Standardverhalten.Zum Lesen von Optionen: liest nur aus der Datei
.git/configim Repository anstelle von allen verfügbaren Dateien.Siehe auch DATEIEN.
- --worktree
-
Ähnlich wie
--local, außer dass aus$GIT_DIR/config.worktreegelesen oder dorthin geschrieben wird, wennextensions.worktreeConfigaktiviert ist. Wenn nicht, ist es dasselbe wie--local. Beachten Sie, dass$GIT_DIRgleich$GIT_COMMON_DIRfür den Hauptarbeitsbaum ist, aber die Form$GIT_DIR/worktrees/<id>/für andere Arbeitsbäume hat. Siehe git-worktree[1], um zu erfahren, wieextensions.worktreeConfigaktiviert wird. - -f <config-datei>
- --file <config-datei>
-
Zum Schreiben von Optionen: schreibt in die angegebene Datei anstelle von
.git/configim Repository.Zum Lesen von Optionen: liest nur aus der angegebenen Datei anstelle von allen verfügbaren Dateien.
Siehe auch DATEIEN.
- --blob <blob>
-
Ähnlich wie
--file, aber verwendet den angegebenen Blob anstelle einer Datei. Z.B. können Sie master:.gitmodules verwenden, um Werte aus der Datei .gitmodules im Master-Branch zu lesen. Siehe den Abschnitt "SPECIFYING REVISIONS" in gitrevisions[7] für eine vollständigere Liste von Möglichkeiten, Blobs zu benennen. --value=<muster>--no-value-
Bei
get,setundunset: Übereinstimmung nur mit <muster>. Das Muster ist ein erweiterter regulärer Ausdruck, es sei denn,--fixed-valuewird angegeben.Verwenden Sie
--no-value, um <muster> zu entfernen. - --fixed-value
-
Wenn mit
--value=<muster> verwendet, wird <muster> als exakter String behandelt und nicht als regulärer Ausdruck. Dies schränkt die übereinstimmenden Namens-/Wertpaare auf diejenigen ein, bei denen der Wert exakt gleich <muster> ist. - --type <typ>
-
git config stellt sicher, dass jede Eingabe oder Ausgabe unter der angegebenen Typbeschränkung(en) gültig ist und normalisiert ausgehende Werte in die kanonische Form von <typ>.
Gültige <typ> sind:
-
bool: Kanonisiert Werte
true,yes,onund positive Zahlen als "true", sowie Wertefalse,no,offund0als "false". -
int: Kanonisiert Werte als einfache Dezimalzahlen. Ein optionales Suffix von k, m oder g bewirkt, dass der Wert beim Einlesen mit 1024, 1048576 bzw. 1073741824 multipliziert wird.
-
bool-or-int: Kanonisiert entweder nach bool oder int, wie oben beschrieben.
-
path: Kanonisiert durch Erweitern eines führenden
~zum Wert von$HOMEund~userzum Home-Verzeichnis des angegebenen Benutzers. Dieser Spezifizierer hat keine Auswirkung beim Setzen des Wertes (aber Sie könnengitconfigsection.variable~/von der Kommandozeile aus verwenden, damit Ihre Shell die Expansion vornimmt). -
expiry-date: Kanonisiert durch Konvertierung von einer festen oder relativen Datumszeichenkette in einen Zeitstempel. Dieser Spezifizierer hat keine Auswirkung beim Setzen des Wertes.
-
color: Beim Abrufen eines Wertes, kanonisiert durch Konvertierung in eine ANSI-Farbesequenz. Beim Setzen eines Wertes wird eine Plausibilitätsprüfung durchgeführt, um sicherzustellen, dass der angegebene Wert als ANSI-Farbe kanonisiert werden kann, er wird jedoch unverändert geschrieben.
-
- --bool
- --int
- --bool-or-int
- --path
- --expiry-date
-
Historische Optionen zur Auswahl eines Typ-Spezifizierers. Bevorzugen Sie stattdessen
--type(siehe oben). - --no-type
-
Hebt den zuvor gesetzten Typ-Spezifizierer auf (falls einer zuvor gesetzt war). Diese Option fordert git config auf, die abgerufene Variable nicht zu kanonisieren.
--no-typehat keine Auswirkung ohne--type=<typ> oder--<typ>. - -z
- --null
-
Für alle Optionen, die Werte und/oder Schlüssel ausgeben, beenden Sie Werte immer mit dem Nullzeichen (anstelle eines Zeilenumbruchs). Verwenden Sie stattdessen einen Zeilenumbruch als Trennzeichen zwischen Schlüssel und Wert. Dies ermöglicht eine sichere Analyse der Ausgabe, ohne z. B. durch Werte mit Zeilenumbrüchen verwirrt zu werden.
- --name-only
-
Gibt nur die Namen der Konfigurationsvariablen für
listodergetaus. --show-names--no-show-names-
Bei
get: Zeigt neben den Werten auch die Konfigurationsschlüssel an. Standard ist--no-show-names, es sei denn,--urlwird angegeben und es gibt keine Unterabschnitte in <name>. - --show-origin
-
Ergänzt die Ausgabe aller abgefragten Konfigurationsoptionen um den Ursprungstyp (Datei, Standardeingabe, Blob, Kommandozeile) und den tatsächlichen Ursprung (Pfad der Konfigurationsdatei, Ref oder Blob-ID, falls zutreffend).
- --show-scope
-
Ähnlich wie
--show-origin, da es die Ausgabe aller abgefragten Konfigurationsoptionen um den Geltungsbereich dieses Wertes (worktree, local, global, system, command) ergänzt. - --get-colorbool <name> [<stdout-is-tty>]
-
Findet die Farbeinstellung für <name> (z.B.
color.diff) und gibt "true" oder "false" aus. <stdout-is-tty> sollte entweder "true" oder "false" sein und wird berücksichtigt, wenn die Konfiguration "auto" besagt. Wenn <stdout-is-tty> fehlt, wird die Standardausgabe des Befehls selbst geprüft und mit Status 0 beendet, wenn Farbe verwendet werden soll, oder mit Status 1 andernfalls. Wenn die Farbeinstellung fürnameundefiniert ist, verwendet der Befehlcolor.uials Fallback. - --includes
- --no-includes
-
Beachtet
include.*-Direktiven in Konfigurationsdateien beim Suchen nach Werten. Standardmäßig ist diesoff, wenn eine bestimmte Datei angegeben wird (z.B. mit--file,--global, etc.) undon, wenn alle Konfigurationsdateien durchsucht werden. - --default <wert>
-
Bei Verwendung von
getund wenn die angeforderte Variable nicht gefunden wird, verhält es sich so, als wäre <wert> der Wert, der dieser Variable zugewiesen wurde.
VERALTETE MODI
Die folgenden Modi wurden zugunsten von Unterbefehlen als veraltet erklärt. Es wird empfohlen, auf die neue Syntax zu migrieren.
- git config <name>
-
Ersetzt durch
gitconfigget<name>. - git config <name> <wert> [<wert-muster>]
-
Ersetzt durch
gitconfigset[--value=<muster>] <name> <wert>. - -l
- --list
-
Ersetzt durch
gitconfiglist. - --get <name> [<wert-muster>]
-
Ersetzt durch
gitconfigget[--value=<muster>] <name>. - --get-all <name> [<wert-muster>]
-
Ersetzt durch
gitconfigget[--value=<muster>]--all<name>. - --get-regexp <name-regexp>
-
Ersetzt durch
gitconfigget--all--show-names--regexp<name-regexp>. - --get-urlmatch <name> <URL>
-
Ersetzt durch
gitconfigget--all--show-names--url=<URL> <name>. - --get-color <name> [<default>]
-
Ersetzt durch
gitconfigget--type=color[--default=<default>] <name>. - --add <name> <wert>
-
Ersetzt durch
gitconfigset--append<name> <wert>. - --unset <name> [<wert-muster>]
-
Ersetzt durch
gitconfigunset[--value=<muster>] <name>. - --unset-all <name> [<wert-muster>]
-
Ersetzt durch
gitconfigunset[--value=<muster>]--all<name>. - --rename-section <alter-name> <neuer-name>
-
Ersetzt durch
gitconfigrename-section<alter-name> <neuer-name>. - --remove-section <name>
-
Ersetzt durch
gitconfigremove-section<name>. - -e
- --edit
-
Ersetzt durch
gitconfigedit.
KONFIGURATION
pager.config wird nur beim Auflisten der Konfiguration berücksichtigt, d.h. bei Verwendung von list oder get, die mehrere Ergebnisse zurückgeben können. Standardmäßig wird ein Pager verwendet.
DATEIEN
Standardmäßig liest git config Konfigurationsoptionen aus mehreren Dateien.
- $(prefix)/etc/gitconfig
-
Systemweite Konfigurationsdatei.
- $XDG_CONFIG_HOME/git/config
- ~/.gitconfig
-
Benutzerspezifische Konfigurationsdateien. Wenn die Umgebungsvariable XDG_CONFIG_HOME nicht gesetzt oder leer ist, wird $HOME/.config/ als $XDG_CONFIG_HOME verwendet.
Diese werden auch als "globale" Konfigurationsdateien bezeichnet. Wenn beide Dateien existieren, werden beide Dateien in der oben angegebenen Reihenfolge gelesen.
- $GIT_DIR/config
-
Repository-spezifische Konfigurationsdatei.
- $GIT_DIR/config.worktree
-
Diese ist optional und wird nur durchsucht, wenn
extensions.worktreeConfigin $GIT_DIR/config vorhanden ist.
Sie können auch zusätzliche Konfigurationsparameter angeben, wenn Sie einen beliebigen Git-Befehl ausführen, indem Sie die Option -c verwenden. Weitere Informationen finden Sie in git[1].
Die Optionen werden aus allen diesen verfügbaren Dateien gelesen. Wenn die globalen oder systemweiten Konfigurationsdateien fehlen oder nicht lesbar sind, werden sie ignoriert. Wenn die Repository-Konfigurationsdatei fehlt oder nicht lesbar ist, schlägt git config mit einem nicht-null-Fehlercode fehl. Eine Fehlermeldung wird ausgegeben, wenn die Datei nicht lesbar ist, aber nicht, wenn sie fehlt.
Die Dateien werden in der oben angegebenen Reihenfolge gelesen, wobei der zuletzt gefundene Wert Vorrang vor früher gelesenen Werten hat. Wenn mehrere Werte genommen werden, werden alle Werte eines Schlüssels aus allen Dateien verwendet.
Standardmäßig werden Optionen nur in die Repository-spezifische Konfigurationsdatei geschrieben. Beachten Sie, dass dies auch Optionen wie set und unset betrifft. git config ändert immer nur eine Datei gleichzeitig.
Sie können die zu lesenden oder zu schreibenden Konfigurationsquellen begrenzen, indem Sie den Pfad einer Datei mit der Option --file angeben oder indem Sie einen Konfigurationsumfang mit --system, --global, --local oder --worktree angeben. Weitere Informationen finden Sie unter OPTIONEN oben.
GUIZMO
Jede Konfigurationsquelle fällt in einen Konfigurationsumfang. Die Umfänge sind:
- system
-
$(prefix)/etc/gitconfig
- global
-
$XDG_CONFIG_HOME/git/config
~/.gitconfig
- local
-
$GIT_DIR/config
- worktree
-
$GIT_DIR/config.worktree
- command
-
GIT_CONFIG_{COUNT,KEY,VALUE} Umgebungsvariablen (siehe UMGEBUNG unten)
die Option
-c
Mit Ausnahme von command entspricht jeder Umfang einer Kommandozeilenoption: --system, --global, --local, --worktree.
Beim Lesen von Optionen liest die Angabe eines Umfangs nur Optionen aus den Dateien innerhalb dieses Umfangs. Beim Schreiben von Optionen schreibt die Angabe eines Umfangs in die Dateien innerhalb dieses Umfangs (anstelle der Repository-spezifischen Konfigurationsdatei). Siehe OPTIONEN oben für eine vollständige Beschreibung.
Die meisten Konfigurationsoptionen werden unabhängig vom Umfang, in dem sie definiert sind, beachtet, aber einige Optionen werden nur in bestimmten Umfängen beachtet. Siehe die jeweilige Dokumentation der Option für die vollständigen Details.
Geschützte Konfiguration
Geschützte Konfiguration bezieht sich auf die Umfänge system, global und command. Aus Sicherheitsgründen werden bestimmte Optionen nur beachtet, wenn sie in der geschützten Konfiguration angegeben sind, und andernfalls ignoriert.
Git behandelt diese Umfänge so, als ob sie vom Benutzer oder einem vertrauenswürdigen Administrator gesteuert würden. Da ein Angreifer, der diese Umfänge kontrolliert, erheblichen Schaden anrichten kann, ohne Git zu verwenden, wird davon ausgegangen, dass die Umgebung des Benutzers diese Umfänge vor Angreifern schützt.
UMGEBUNG
- GIT_CONFIG_GLOBAL
- GIT_CONFIG_SYSTEM
-
Nimmt die Konfiguration aus den angegebenen Dateien anstelle der globalen oder systemweiten Konfiguration. Siehe git[1] für Details.
- GIT_CONFIG_NOSYSTEM
-
Überspringt das Lesen von Einstellungen aus der systemweiten Datei $(prefix)/etc/gitconfig. Siehe git[1] für Details.
Siehe auch DATEIEN.
- GIT_CONFIG_COUNT
- GIT_CONFIG_KEY_<n>
- GIT_CONFIG_VALUE_<n>
-
Wenn GIT_CONFIG_COUNT auf eine positive Zahl gesetzt ist, werden alle Umgebungspaare GIT_CONFIG_KEY_<n> und GIT_CONFIG_VALUE_<n> bis zu dieser Zahl zur Laufzeitkonfiguration des Prozesses hinzugefügt. Die Konfigurationspaare sind nullindiziert. Ein fehlender Schlüssel oder Wert wird als Fehler behandelt. Ein leeres GIT_CONFIG_COUNT wird wie GIT_CONFIG_COUNT=0 behandelt, d.h. es werden keine Paare verarbeitet. Diese Umgebungsvariablen überschreiben Werte in Konfigurationsdateien, werden aber von expliziten Optionen überschrieben, die über
git-cübergeben werden.Dies ist nützlich für Fälle, in denen Sie mehrere Git-Befehle mit einer gemeinsamen Konfiguration starten möchten, aber nicht auf eine Konfigurationsdatei angewiesen sein können, z. B. beim Schreiben von Skripten.
- GIT_CONFIG
-
Wenn keine Option
--fileangitconfigübergeben wird, wird die vonGIT_CONFIGangegebene Datei wie über--fileübergeben behandelt. Diese Variable hat keine Auswirkung auf andere Git-Befehle und dient hauptsächlich der historischen Kompatibilität; es gibt im Allgemeinen keinen Grund, sie anstelle der Option--filezu verwenden.
BEISPIELE
Gegeben sei eine .git/config wie diese
# # This is the config file, and # a '#' or ';' character indicates # a comment # ; core variables [core] ; Don't trust file modes filemode = false ; Our diff algorithm [diff] external = /usr/local/bin/diff-wrapper renames = true ; Proxy settings [core] gitproxy=proxy-command for kernel.org gitproxy=default-proxy ; for all the rest ; HTTP [http] sslVerify [http "https://weak.example.com"] sslVerify = false cookieFile = /tmp/cookie.txt
Sie können filemode auf true setzen mit
% git config set core.filemode true
Die hypothetischen Proxy-Befehlseinträge haben tatsächlich einen Suffix, um zu unterscheiden, auf welche URL sie sich beziehen. So ändern Sie den Eintrag für kernel.org zu "ssh".
% git config set --value='for kernel.org$' core.gitproxy '"ssh" for kernel.org'
Dies stellt sicher, dass nur das Schlüssel/Wert-Paar für kernel.org ersetzt wird.
Um den Eintrag für renames zu löschen, tun Sie Folgendes:
% git config unset diff.renames
Wenn Sie einen Eintrag für eine Mehrfachvariable (wie core.gitproxy oben) löschen möchten, müssen Sie ein Regex angeben, das den Wert genau einer Zeile entspricht.
Um den Wert für einen bestimmten Schlüssel abzufragen, tun Sie Folgendes:
% git config get core.filemode
oder um eine Mehrfachvariable abzufragen
% git config get --value="for kernel.org$" core.gitproxy
Wenn Sie alle Werte für eine Mehrfachvariable wissen möchten, tun Sie Folgendes:
% git config get --all --show-names core.gitproxy
Wenn Sie gefährlich leben wollen, können Sie alle core.gitproxy durch eine neue ersetzen mit
% git config set --all core.gitproxy ssh
Wenn Sie jedoch wirklich nur die Zeile für den Standardproxy ersetzen möchten, d.h. die ohne "for …" Suffix, tun Sie etwas wie dies:
% git config set --value='! for ' core.gitproxy ssh
Um tatsächlich nur Werte mit einem Ausrufezeichen abzugleichen, müssen Sie
% git config set --value='[!]' section.key value
Um einen neuen Proxy hinzuzufügen, ohne einen der bestehenden zu ändern, verwenden Sie
% git config set --append core.gitproxy '"proxy-command" for example.com'
Ein Beispiel zur Verwendung von benutzerdefinierter Farbe aus der Konfiguration in Ihrem Skript
#!/bin/sh
WS=$(git config get --type=color --default="blue reverse" color.diff.whitespace)
RESET=$(git config get --type=color --default="reset" "")
echo "${WS}your whitespace color or blue reverse${RESET}"
Für URLs in https://weak.example.com ist http.sslVerify auf false gesetzt, während es für alle anderen auf true gesetzt ist.
% git config get --type=bool --url=https://good.example.com http.sslverify true % git config get --type=bool --url=https://weak.example.com http.sslverify false % git config get --url=https://weak.example.com http http.cookieFile /tmp/cookie.txt http.sslverify false
KONFIGURATIONS DATEI
Die Git-Konfigurationsdatei enthält eine Reihe von Variablen, die das Verhalten der Git-Befehle beeinflussen. Die Dateien .git/config und optional config.worktree (siehe Abschnitt "CONFIGURATION FILE" von git-worktree[1]) in jedem Repository werden verwendet, um die Konfiguration für dieses Repository zu speichern, und $HOME/.gitconfig wird verwendet, um eine benutzerspezifische Konfiguration als Fallback-Werte für die Datei .git/config zu speichern. Die Datei /etc/gitconfig kann verwendet werden, um eine systemweite Standardkonfiguration zu speichern.
Die Konfigurationsvariablen werden sowohl von den Git-Plumbing- als auch von den Porcelain-Befehlen verwendet. Die Variablen sind in Abschnitte unterteilt, wobei der vollständig qualifizierte Variablenname der Variable selbst das letzte durch Punkte getrennte Segment ist und der Abschnittsname alles vor dem letzten Punkt ist. Die Variablennamen sind nicht case-sensitiv, erlauben nur alphanumerische Zeichen und - und müssen mit einem alphabetischen Zeichen beginnen. Einige Variablen können mehrmals vorkommen; wir sagen dann, dass die Variable mehrwertig ist.
Syntax
Die Syntax ist ziemlich flexibel und permissiv. Whitespace-Zeichen, die in diesem Kontext das Leerzeichen (SP) und die horizontale Tabulierung (HT) sind, werden größtenteils ignoriert. Die Zeichen # und ; beginnen Kommentare bis zum Zeilenende. Leere Zeilen werden ignoriert.
Die Datei besteht aus Abschnitten und Variablen. Ein Abschnitt beginnt mit dem Namen des Abschnitts in eckigen Klammern und dauert bis zum Beginn des nächsten Abschnitts. Abschnittsnamen sind nicht case-sensitiv. Nur alphanumerische Zeichen, - und . sind in Abschnittsnamen erlaubt. Jede Variable muss zu einem Abschnitt gehören, was bedeutet, dass vor der ersten Einstellung einer Variablen eine Abschnittsüberschrift vorhanden sein muss.
Abschnitte können weiter in Unterabschnitte unterteilt werden. Um einen Unterabschnitt zu beginnen, setzen Sie seinen Namen in doppelte Anführungszeichen, durch ein Leerzeichen vom Abschnittsnamen getrennt, in der Abschnittsüberschrift, wie im folgenden Beispiel
[section "subsection"]
Unterabschnittsnamen sind case-sensitiv und können beliebige Zeichen außer Zeilenumbruch und Nullbyte enthalten. Doppelte Anführungszeichen " und Backslashes können durch Escaping als \" und \\ eingefügt werden. Backslashes, die anderen Zeichen vorangestellt sind, werden beim Lesen verworfen; zum Beispiel wird \t als t und \0 als 0 gelesen. Abschnittsüberschriften können sich nicht über mehrere Zeilen erstrecken. Variablen können direkt zu einem Abschnitt oder zu einem bestimmten Unterabschnitt gehören. Sie können [section] haben, wenn Sie [section "subsection"] haben, aber Sie müssen es nicht.
Es gibt auch eine veraltete Syntax [section.subsection]. Mit dieser Syntax wird der Unterabschnittsname in Kleinbuchstaben umgewandelt und auch case-sensitiv verglichen. Diese Unterabschnittsnamen folgen denselben Einschränkungen wie Abschnittsnamen.
Alle anderen Zeilen (und der Rest der Zeile nach der Abschnittsüberschrift) werden als Variablenzuweisungen erkannt, in der Form name = wert (oder einfach name, was eine Kurzform ist, um zu sagen, dass die Variable der boolesche "true" ist). Die Variablennamen sind nicht case-sensitiv, erlauben nur alphanumerische Zeichen und - und müssen mit einem alphabetischen Zeichen beginnen.
Whitespace-Zeichen, die name, = und wert umgeben, werden verworfen. Interne Whitespace-Zeichen innerhalb von wert werden wörtlich beibehalten. Kommentare, die mit # oder ; beginnen und bis zum Zeilenende reichen, werden verworfen. Eine Zeile, die einen Wert definiert, kann mit einem Backslash (\) am Ende zur nächsten Zeile fortgesetzt werden; der Backslash und die Zeilenende-Zeichen werden verworfen.
Wenn wert führende oder nachgestellte Whitespace-Zeichen enthalten muss, muss er in doppelte Anführungszeichen (") eingeschlossen werden. Innerhalb von doppelten Anführungszeichen müssen doppelte Anführungszeichen (") und Backslashes (\) escaped werden: Verwenden Sie \" für " und \\ für \.
Die folgenden Escape-Sequenzen (neben \" und \\) werden erkannt: \n für Zeilenumbruchzeichen (NL), \t für horizontale Tabulierung (HT, TAB) und \b für Rückschritt (BS). Andere Zeichen-Escape-Sequenzen (einschließlich Oktal-Escape-Sequenzen) sind ungültig.
Includes
Die Abschnitte include und includeIf erlauben es Ihnen, Konfigurationsdirektiven aus einer anderen Quelle einzubinden. Diese Abschnitte verhalten sich bis auf die Ausnahme, dass includeIf-Abschnitte ignoriert werden können, wenn ihre Bedingung nicht zu true ausgewertet wird, identisch. Siehe "Bedingte Includes" unten.
Sie können eine Konfigurationsdatei aus einer anderen includen, indem Sie die spezielle Variable include.path (oder includeIf.*.path) auf den Namen der einzubindenden Datei setzen. Die Variable nimmt einen Pfadnamen als Wert an und unterliegt der Tilde-Expansion. Diese Variablen können mehrmals angegeben werden.
Der Inhalt der inkludierten Datei wird sofort eingefügt, als ob er sich an der Stelle der Include-Direktive befunden hätte. Wenn der Wert der Variablen ein relativer Pfad ist, wird der Pfad als relativ zur Konfigurationsdatei betrachtet, in der die Include-Direktive gefunden wurde. Siehe unten für Beispiele.
Bedingte Includes
Sie können eine Konfigurationsdatei bedingt aus einer anderen includen, indem Sie die Variable includeIf.<condition>.path auf den Namen der einzubindenden Datei setzen.
Die Bedingung beginnt mit einem Schlüsselwort, gefolgt von einem Doppelpunkt und einigen Daten, deren Format und Bedeutung vom Schlüsselwort abhängt. Unterstützte Schlüsselwörter sind
gitdir-
Die Daten, die dem Schlüsselwort
gitdirund einem Doppelpunkt folgen, werden als Glob-Muster verwendet. Wenn der Speicherort des .git-Verzeichnisses mit dem Muster übereinstimmt, ist die Include-Bedingung erfüllt.Der .git-Speicherort kann automatisch ermittelt oder aus der Umgebungsvariable
$GIT_DIRstammen. Wenn das Repository über eine .git-Datei automatisch ermittelt wird (z. B. von Submodulen oder einem verknüpften Worktree), ist der .git-Speicherort der endgültige Speicherort, an dem sich das .git-Verzeichnis befindet, nicht, wo sich die .git-Datei befindet.Das Muster kann Standard-Globbing-Wildcards und zwei zusätzliche,
**/und/**, enthalten, die mehrere Pfadkomponenten abgleichen können. Bitte siehe gitignore[5] für Details. Zur Bequemlichkeit-
Wenn das Muster mit
~/beginnt, wird~durch den Inhalt der UmgebungsvariableHOMEersetzt. -
Wenn das Muster mit
./beginnt, wird es durch das Verzeichnis ersetzt, das die aktuelle Konfigurationsdatei enthält. -
Wenn das Muster weder mit
~/,./noch mit/beginnt, wird automatisch**/vorangestellt. Zum Beispiel wird das Musterfoo/barzu**/foo/barund würde/any/path/to/foo/barabgleichen. -
Wenn das Muster mit
/endet, wird automatisch**hinzugefügt. Zum Beispiel wird das Musterfoo/zufoo/**. Mit anderen Worten, es gleicht "foo" und alles darin rekursiv ab.
-
gitdir/i-
Dies ist dasselbe wie
gitdir, mit der Ausnahme, dass die Übereinstimmung case-insensitiv erfolgt (z. B. auf case-insensitiven Dateisystemen). onbranch-
Die Daten, die dem Schlüsselwort
onbranchund einem Doppelpunkt folgen, werden als Muster mit Standard-Globbing-Wildcards und zwei zusätzlichen,**/und/**, interpretiert, die mehrere Pfadkomponenten abgleichen können. Wenn wir uns in einem Worktree befinden, dessen Name des aktuell ausgecheckten Branches mit dem Muster übereinstimmt, ist die Include-Bedingung erfüllt.Wenn das Muster mit
/endet, wird automatisch**hinzugefügt. Zum Beispiel wird das Musterfoo/zufoo/**. Mit anderen Worten, es gleicht alle Branches ab, die mitfoo/beginnen. Dies ist nützlich, wenn Ihre Branches hierarchisch organisiert sind und Sie eine Konfiguration auf alle Branches dieser Hierarchie anwenden möchten. hasconfig:remote.*.url-
Die Daten, die diesem Schlüsselwort und einem Doppelpunkt folgen, werden als Muster mit Standard-Globbing-Wildcards und zwei zusätzlichen,
**/und/**, interpretiert, die mehrere Komponenten abgleichen können. Beim ersten Auftreten dieses Schlüsselworts werden die restlichen Konfigurationsdateien nach Remote-URLs durchsucht (ohne Werte anzuwenden). Wenn mindestens eine Remote-URL existiert, die mit diesem Muster übereinstimmt, ist die Include-Bedingung erfüllt.Dateien, die durch diese Option (direkt oder indirekt) inkludiert werden, dürfen keine Remote-URLs enthalten.
Beachten Sie, dass im Gegensatz zu anderen includeIf-Bedingungen die Auflösung dieser Bedingung auf Informationen basiert, die zum Zeitpunkt des Lesens der Bedingung noch nicht bekannt sind. Ein typischer Anwendungsfall ist die Anwesenheit dieser Option als systemweite oder globale Konfiguration und die Remote-URL in einer lokalen Konfiguration; daher die Notwendigkeit, beim Auflösen dieser Bedingung vorauszulesen. Um das Henne-Ei-Problem zu vermeiden, bei dem potenziell inkludierte Dateien beeinflussen können, ob solche Dateien potenziell inkludiert werden, bricht Git den Zyklus, indem es verbietet, dass diese Dateien die Auflösung dieser Bedingungen beeinflussen (und somit das Deklarieren von Remote-URLs verbietet).
Was die Benennung dieses Schlüsselworts betrifft, so dient es der Vorwärtskompatibilität mit einem Benennungsschema, das mehr variablebasierte Include-Bedingungen unterstützt, aber derzeit unterstützt Git nur das exakt beschriebene Schlüsselwort.
Einige weitere Hinweise zum Abgleichen über gitdir und gitdir/i
-
Symlinks in
$GIT_DIRwerden vor dem Abgleich nicht aufgelöst. -
Sowohl die Symlink- & Realpath-Versionen von Pfaden werden außerhalb von
$GIT_DIRabgeglichen. Z.B. wenn ~/git ein Symlink zu /mnt/storage/git ist, werden sowohlgitdir:~/gitals auchgitdir:/mnt/storage/gitabgeglichen.Dies war bei der ersten Veröffentlichung dieses Features in v2.13.0 nicht der Fall, die nur die Realpath-Version abglich. Konfigurationen, die mit der ersten Veröffentlichung dieses Features kompatibel sein sollen, müssen entweder nur die Realpath-Version oder beide Versionen angeben.
-
Beachten Sie, dass "../" nicht speziell ist und wörtlich abgeglichen wird, was unwahrscheinlich ist, was Sie wollen.
Beispiel
# Core variables [core] ; Don't trust file modes filemode = false # Our diff algorithm [diff] external = /usr/local/bin/diff-wrapper renames = true [branch "devel"] remote = origin merge = refs/heads/devel # Proxy settings [core] gitProxy="ssh" for "kernel.org" gitProxy=default-proxy ; for the rest [include] path = /path/to/foo.inc ; include by absolute path path = foo.inc ; find "foo.inc" relative to the current file path = ~/foo.inc ; find "foo.inc" in your `$HOME` directory ; include if $GIT_DIR is /path/to/foo/.git [includeIf "gitdir:/path/to/foo/.git"] path = /path/to/foo.inc ; include for all repositories inside /path/to/group [includeIf "gitdir:/path/to/group/"] path = /path/to/foo.inc ; include for all repositories inside $HOME/to/group [includeIf "gitdir:~/to/group/"] path = /path/to/foo.inc ; relative paths are always relative to the including ; file (if the condition is true); their location is not ; affected by the condition [includeIf "gitdir:/path/to/group/"] path = foo.inc ; include only if we are in a worktree where foo-branch is ; currently checked out [includeIf "onbranch:foo-branch"] path = foo.inc ; include only if a remote with the given URL exists (note ; that such a URL may be provided later in a file or in a ; file read after this file is read, as seen in this example) [includeIf "hasconfig:remote.*.url:https://example.com/**"] path = foo.inc [remote "origin"] url = https://example.com/git
Werte
Werte vieler Variablen werden als einfacher String behandelt, aber es gibt Variablen, die Werte bestimmter Typen annehmen, und es gibt Regeln, wie diese geschrieben werden.
- boolesch
-
Wenn eine Variable angibt, einen booleschen Wert anzunehmen, werden viele Synonyme für true und false akzeptiert; diese sind alle case-insensitiv.
- wahr
-
Boolesche True-Literale sind
yes,on,trueund1. Außerdem wird eine Variable, die ohne=<wert> definiert ist, als true angenommen. - falsch
-
Boolesche False-Literale sind
no,off,false,0und der leere String.Bei der Konvertierung eines Wertes in seine kanonische Form unter Verwendung des Typenspezifizierers
--type=boolstellt git config sicher, dass die Ausgabe "true" oder "false" (in Kleinbuchstaben geschrieben) ist.
- ganzzahlig
-
Der Wert vieler Variablen, die verschiedene Größen angeben, kann mit
k,M,… enden, um "skaliere die Zahl um 1024", "um 1024x1024" usw. zu bedeuten. - farbe
-
Der Wert einer Variablen, die eine Farbe annimmt, ist eine Liste von Farben (höchstens zwei, eine für Vordergrund und eine für Hintergrund) und Attributen (beliebige Anzahl), durch Leerzeichen getrennt.
Die akzeptierten Grundfarben sind
normal,black,red,green,yellow,blue,magenta,cyan,whiteunddefault. Die erste angegebene Farbe ist der Vordergrund; die zweite ist der Hintergrund. Alle Grundfarben außernormalunddefaulthaben eine helle Variante, die durch Voranstellen vonbrightvor der Farbe angegeben werden kann, z. B.brightred.Die Farbe
normalverändert die Farbe nicht. Sie ist dasselbe wie ein leerer String, kann aber als Vordergrundfarbe verwendet werden, wenn nur eine Hintergrundfarbe angegeben wird (z. B. "normal red").Die Farbe
defaultsetzt die Farbe explizit auf den Terminalstandard zurück, z. B. um einen leeren Hintergrund anzugeben. Obwohl es je nach Terminal variiert, ist dies normalerweise nicht dasselbe wie die Einstellung auf "white black".Farben können auch als Zahlen zwischen 0 und 255 angegeben werden; diese verwenden den ANSI 256-Farbenmodus (beachten Sie jedoch, dass nicht alle Terminals dies unterstützen). Wenn Ihr Terminal dies unterstützt, können Sie auch 24-Bit-RGB-Werte als Hexadezimalzahl angeben, wie
#ff0ab3, oder 12-Bit-RGB-Werte wie#f1b, was dem 24-Bit-Farbe#ff11bbentspricht.Die akzeptierten Attribute sind
bold,dim,ul,blink,reverse,italicundstrike(für durchgestrichene oder "durchgestrichene" Buchstaben). Die Position von Attributen in Bezug auf die Farben (davor, danach oder dazwischen) spielt keine Rolle. Bestimmte Attribute können durch Voranstellen vonnooderno-(z. B.noreverse,no-ulusw.) ausgeschaltet werden.Das Pseudo-Attribut
resetsetzt alle Farben und Attribute zurück, bevor die angegebene Farbgebung angewendet wird. Zum Beispiel führtresetgreenzu einem grünen Vordergrund und einem Standardhintergrund ohne aktive Attribute.Ein leerer Farbstring erzeugt keinen Farbeffekt. Dies kann verwendet werden, um bestimmte Elemente nicht zu färben, ohne die Farbe vollständig zu deaktivieren.
Für Git's vordefinierte Farb-Slots sollen die Attribute am Anfang jedes Elements der farbigen Ausgabe zurückgesetzt werden. Das Setzen von
color.decorate.branchaufblackfärbt diesen Branch-Namen in einem einfachenblack, auch wenn das vorherige Element in derselben Ausgabespalte (z. B. die öffnende Klammer vor der Liste der Branch-Namen in derlog--decorate-Ausgabe) mitboldoder einem anderen Attribut gefärbt ist. Benutzerdefinierte Log-Formate können jedoch kompliziertere und geschichtete Färbungen vornehmen, und die negierten Formen können dort nützlich sein. - Pfadname
-
Eine Variable, die einen Pfadnamenwert annimmt, kann einen String erhalten, der mit "
~/" oder "~user/" beginnt, und die übliche Tilde-Expansion wird auf einen solchen String angewendet:~/wird zum Wert von$HOMEerweitert, und~user/zum Home-Verzeichnis des angegebenen Benutzers.Wenn ein Pfad mit
%(prefix)/beginnt, wird der Rest als Pfad relativ zum "Runtime Prefix" von Git interpretiert, d. h. relativ zum Speicherort, an dem Git selbst installiert wurde. Zum Beispiel bezieht sich%(prefix)/bin/auf das Verzeichnis, in dem die Git-Executable selbst lebt. Wenn Git ohne Runtime-Prefix-Unterstützung kompiliert wurde, wird stattdessen der eingebaute Prefix eingesetzt. In dem unwahrscheinlichen Fall, dass ein literaler Pfad angegeben werden muss, der nicht expandiert werden soll, muss er mit./davor präfigiert werden, so:./%(prefix)/bin.Wenn mit
:(optional)präfigiert, wird die Konfigurationsvariable so behandelt, als ob sie nicht existiert, wenn der genannte Pfad nicht existiert.
Variablen
Beachten Sie, dass diese Liste nicht erschöpfend und nicht unbedingt vollständig ist. Für Befehlsspezifische Variablen finden Sie eine detailliertere Beschreibung auf der entsprechenden Handbuchseite.
Andere Git-bezogene Tools können und verwenden ihre eigenen Variablen. Wenn Sie neue Variablen für die Verwendung in Ihrem eigenen Tool erfinden, stellen Sie sicher, dass ihre Namen nicht mit denen kollidieren, die von Git selbst und anderen beliebten Tools verwendet werden, und beschreiben Sie sie in Ihrer Dokumentation.
add.ignoreErrorsadd.ignore-errors(veraltet)-
Weist
gitaddan, mit dem Hinzufügen von Dateien fortzufahren, wenn einige Dateien aufgrund von Indexierungsfehlern nicht hinzugefügt werden können. Entspricht der Option--ignore-errorsvon git-add[1].add.ignore-errorsist veraltet, da sie nicht der üblichen Namenskonvention für Konfigurationsvariablen folgt. - advice.*
-
Diese Variablen steuern verschiedene optionale Hilfemeldungen, die dazu dienen, neue Benutzer zu unterstützen. Wenn sie unkonfiguriert bleiben, gibt Git die Meldung zusammen mit Anweisungen aus, wie sie unterdrückt werden kann. Sie können Git mitteilen, dass Sie das Problem verstanden haben und keine bestimmte Hilfemeldung mehr benötigen, indem Sie die entsprechende Variable auf
falsesetzen.Da sie dazu dienen, menschliche Benutzer zu unterstützen, werden diese Meldungen auf Standardfehler ausgegeben. Wenn Tools, die Git als Subprozess ausführen, sie störend finden, können sie
GIT_ADVICE=0in der Umgebung setzen, um alle Ratschlagsmeldungen zu unterdrücken.- addEmbeddedRepo
-
Wird angezeigt, wenn der Benutzer versehentlich ein Git-Repository innerhalb eines anderen hinzufügt.
- addEmptyPathspec
-
Wird angezeigt, wenn der Benutzer
gitaddausführt, ohne den Pathspec-Parameter anzugeben. - addIgnoredFile
-
Wird angezeigt, wenn der Benutzer versucht, eine ignorierte Datei zum Index hinzuzufügen.
- amWorkDir
-
Wird angezeigt, wenn git-am[1] fehlschlägt, eine Patch-Datei anzuwenden, um dem Benutzer den Speicherort der Datei mitzuteilen.
- ambiguousFetchRefspec
-
Wird angezeigt, wenn eine Fetch-Refspec für mehrere Remotes in denselben Remote-Tracking-Branch-Namensraum abgebildet wird und das Einrichten des Branch-Trackings fehlschlägt.
- checkoutAmbiguousRemoteBranchName
-
Wird angezeigt, wenn das Argument für git-checkout[1] und git-switch[1] mehrdeutig auf einen Remote-Tracking-Branch auf mehr als einem Remote abgebildet wird, in Situationen, in denen ein eindeutiges Argument andernfalls einen Remote-Tracking-Branch ausgecheckt hätte. Siehe die Konfigurationsvariable
checkout.defaultRemote, wie man einen bestimmten Remote als Standard für Situationen setzt, in denen dieser Ratschlag ausgegeben würde. - commitBeforeMerge
-
Wird angezeigt, wenn git-merge[1] sich weigert zu mergen, um lokale Änderungen nicht zu überschreiben.
- detachedHead
-
Wird angezeigt, wenn der Benutzer git-switch[1] oder git-checkout[1] verwendet, um in den Detached-HEAD-Zustand zu wechseln, um dem Benutzer mitzuteilen, wie man danach einen lokalen Branch erstellt.
- diverging
-
Wird angezeigt, wenn ein Fast-Forward nicht möglich ist.
- fetchShowForcedUpdates
-
Wird angezeigt, wenn git-fetch[1] lange zur Berechnung von erzwungenen Aktualisierungen nach Ref-Aktualisierungen braucht oder um zu warnen, dass die Prüfung deaktiviert ist.
- forceDeleteBranch
-
Wird angezeigt, wenn der Benutzer versucht, einen nicht vollständig gemergten Branch zu löschen, ohne die Option force zu setzen.
- ignoredHook
-
Wird angezeigt, wenn ein Hook ignoriert wird, weil der Hook nicht als ausführbar gesetzt ist.
- implicitIdentity
-
Wird angezeigt, wenn die Informationen des Benutzers vom System-Benutzernamen und Domänennamen erraten werden, um dem Benutzer mitzuteilen, wie er seine Identitätskonfiguration einstellen kann.
- mergeConflict
-
Wird angezeigt, wenn verschiedene Befehle wegen Konflikten stoppen.
- nestedTag
-
Wird angezeigt, wenn ein Benutzer versucht, ein Tag-Objekt rekursiv zu taggen.
- pushAlreadyExists
-
Wird angezeigt, wenn git-push[1] eine Aktualisierung ablehnt, die nicht für Fast-Forwarding in Frage kommt (z. B. ein Tag).
- pushFetchFirst
-
Wird angezeigt, wenn git-push[1] eine Aktualisierung ablehnt, die versucht, einen Remote-Ref zu überschreiben, der auf ein Objekt zeigt, das wir nicht haben.
- pushNeedsForce
-
Wird angezeigt, wenn git-push[1] eine Aktualisierung ablehnt, die versucht, einen Remote-Ref zu überschreiben, der auf ein Objekt zeigt, das kein Commit-ish ist, oder den Remote-Ref auf ein Objekt zeigen lässt, das kein Commit-ish ist.
- pushNonFFCurrent
-
Wird angezeigt, wenn git-push[1] aufgrund einer Nicht-Fast-Forward-Aktualisierung des aktuellen Branches fehlschlägt.
- pushNonFFMatching
-
Wird angezeigt, wenn der Benutzer git-push[1] ausgeführt und explizit "matching refs" gepusht hat (d. h.
:verwendet oder einen Refspec angegeben hat, der nicht der aktuelle Branch ist) und dies zu einem Nicht-Fast-Forward-Fehler führte. - pushRefNeedsUpdate
-
Wird angezeigt, wenn git-push[1] eine erzwungene Aktualisierung eines Branches ablehnt, wenn dessen Remote-Tracking-Ref Aktualisierungen enthält, die wir lokal nicht haben.
- pushUnqualifiedRefname
-
Wird angezeigt, wenn git-push[1] aufhört zu versuchen, anhand der Quell- und Ziel-Refs zu erraten, in welchem Remote-Ref-Namensraum die Quelle gehört, aber wir können dem Benutzer trotzdem vorschlagen, zu
refs/heads/*oderrefs/tags/*zu pushen, basierend auf dem Typ des Quellobjekts. - pushUpdateRejected
-
Setzen Sie diese Variable auf
false, wenn SiepushNonFFCurrent,pushNonFFMatching,pushAlreadyExists,pushFetchFirst,pushNeedsForceundpushRefNeedsUpdategleichzeitig deaktivieren möchten. - rebaseTodoError
-
Wird angezeigt, wenn nach dem Bearbeiten der Rebase-Todo-Liste ein Fehler auftritt.
- refSyntax
-
Wird angezeigt, wenn der Benutzer einen ungültigen Ref-Namen angibt, um den Benutzer über die Dokumentation der Ref-Syntax zu informieren.
- resetNoRefresh
-
Wird angezeigt, wenn git-reset[1] mehr als 2 Sekunden zum Aktualisieren des Index nach dem Reset benötigt, um dem Benutzer mitzuteilen, dass er die Option
--no-refreshverwenden kann. - resolveConflict
-
Wird von verschiedenen Befehlen angezeigt, wenn Konflikte die Ausführung des Vorgangs verhindern.
- rmHints
-
Wird bei einem Fehler in der Ausgabe von git-rm[1] angezeigt, um Anweisungen zu geben, wie vom aktuellen Zustand aus fortzufahren ist.
- sequencerInUse
-
Wird angezeigt, wenn ein Sequenzer-Befehl bereits ausgeführt wird.
- skippedCherryPicks
-
Wird angezeigt, wenn git-rebase[1] einen Commit überspringt, der bereits auf den Upstream-Branch gemerged (cherry-picked) wurde.
- sparseIndexExpanded
-
Wird angezeigt, wenn ein Sparse-Index zu einem vollständigen Index erweitert wird, was wahrscheinlich auf eine unerwartete Menge von Dateien außerhalb des Sparse-Checkouts zurückzuführen ist.
- statusAheadBehind
-
Wird angezeigt, wenn git-status[1] die Ahead/Behind-Zählungen für einen lokalen Ref im Vergleich zu seinem Remote-Tracking-Ref berechnet und diese Berechnung länger als erwartet dauert. Wird nicht angezeigt, wenn
status.aheadBehindfalse ist oder die Option--no-ahead-behindangegeben wird. - statusHints
-
Zeigt Anweisungen an, wie vom aktuellen Zustand in der Ausgabe von git-status[1], in der Vorlage beim Schreiben von Commit-Nachrichten in git-commit[1] und in der Hilfemeldung von git-switch[1] oder git-checkout[1] beim Wechseln von Branches fortzufahren ist.
- statusUoption
-
Wird angezeigt, wenn git-status[1] mehr als 2 Sekunden zur Enumeration von untracked Dateien benötigt, um dem Benutzer mitzuteilen, dass er die Option
-uverwenden kann. - submoduleAlternateErrorStrategyDie
-
Wird angezeigt, wenn eine auf "die" konfigurierte Option submodule.alternateErrorStrategy einen fatalen Fehler verursacht.
- submoduleMergeConflict
-
Ratschlag, der angezeigt wird, wenn ein nicht-trivialer Submodul-Merge-Konflikt auftritt.
- submodulesNotUpdated
-
Wird angezeigt, wenn ein Benutzer einen Submodulbefehl ausführt, der fehlschlägt, weil
gitsubmoduleupdate--initnicht ausgeführt wurde. - suggestDetachingHead
-
Angezeigt, wenn git-switch[1] sich weigert, HEAD zu lösen, ohne die explizite Option
--detach. - updateSparsePath
-
Angezeigt, wenn entweder git-add[1] oder git-rm[1] aufgefordert wird, Indexeinträge außerhalb des aktuellen Sparse-Checkouts zu aktualisieren.
- waitingForEditor
-
Angezeigt, wenn Git auf die Eingabe des Editors wartet. Relevant, wenn z.B. der Editor nicht im Terminal gestartet wird.
- worktreeAddOrphan
-
Angezeigt, wenn der Benutzer versucht, einen Worktree aus einer ungültigen Referenz zu erstellen, um dem Benutzer zu erklären, wie stattdessen ein neuer, ungeborener Branch erstellt werden kann.
- alias.*
-
Befehlsealiase für den Wrapper-Befehl git[1] - z.B. nach der Definition von
alias.last=cat-filecommitHEADist der Aufrufgitlastäquivalent zugitcat-filecommitHEAD. Um Verwechslungen und Probleme bei der Verwendung von Skripten zu vermeiden, werden Aliase, die bestehende Git-Befehle verdecken, ignoriert, mit Ausnahme von veralteten Befehlen. Argumente werden durch Leerzeichen getrennt, die übliche Shell-Quoting und -Escaping werden unterstützt. Ein Paar von Anführungszeichen oder ein Backslash können verwendet werden, um sie zu quoten.Beachten Sie, dass das erste Wort eines Alias nicht notwendigerweise ein Befehl sein muss. Es kann eine Befehlszeilenoption sein, die in den Aufruf von
gitübergeben wird. Insbesondere ist dies nützlich, wenn es mit-cverwendet wird, um einmalige Konfigurationen zu übergeben, oder mit-p, um die Paginierung zu erzwingen. Zum Beispiel kannloud-rebase=-ccommit.verbose=truerebaseso definiert werden, dassgitloud-rebaseäquivalent zugit-ccommit.verbose=truerebaseist. Ebenso wäreps=-pstatusein hilfreicher Alias, dagitpsdie Ausgabe vongitstatuspaginiert, wo der ursprüngliche Befehl dies nicht tut.Wenn der Alias-Expansion ein Ausrufezeichen vorangestellt ist, wird sie als Shell-Befehl behandelt. Zum Beispiel, wenn
alias.new=!gitk--all--notORIG_HEADdefiniert ist, ist der Aufrufgitnewäquivalent zur Ausführung des Shell-Befehlsgitk--all--notORIG_HEAD. Beachten Sie-
Shell-Befehle werden vom übergeordneten Verzeichnis eines Repositorys aus ausgeführt, was nicht unbedingt das aktuelle Verzeichnis sein muss.
-
GIT_PREFIXwird so gesetzt, wie er durch Ausführung vongitrev-parse--show-prefixaus dem ursprünglichen aktuellen Verzeichnis zurückgegeben wird. Siehe git-rev-parse[1]. -
Shell-Befehlsaliase erhalten immer alle zusätzlichen Argumente, die an die Git-Befehlszeile übergeben werden, als positionelle Argumente.
-
Vorsicht ist geboten, wenn Ihr Shell-Alias ein "One-Liner"-Skript mit mehreren Befehlen (z. B. in einer Pipeline) ist, auf mehrere Argumente verweist oder ansonsten nicht in der Lage ist, positionelle Argumente zu verarbeiten, die am Ende hinzugefügt werden. Zum Beispiel:
alias.cmd="!echo$1|grep$2"aufgerufen alsgitcmd12wird ausgeführt als echo $1 | grep $2 1 2, was nicht das ist, was Sie wollen. -
Eine praktische Methode, dies zu handhaben, ist, Ihre Skriptoperationen in einer Inline-Funktion zu schreiben, die dann mit beliebigen Argumenten von der Befehlszeile aufgerufen wird. Zum Beispiel wird alias.cmd = "!c() { echo $1 | grep $2 ; }; c" das vorherige Beispiel korrekt ausführen.
-
Das Setzen von
GIT_TRACE=1kann Ihnen helfen, den für Ihren Alias ausgeführten Befehl zu debuggen.
-
-
- am.keepcr
-
Wenn wahr, ruft git-am git-mailsplit für Patches im mbox-Format mit dem Parameter
--keep-crauf. In diesem Fall wird git-mailsplit \r nicht von Zeilen entfernen, die mit \r\n enden. Kann überschrieben werden, indem--no-keep-crvon der Befehlszeile angegeben wird. Siehe git-am[1], git-mailsplit[1]. - am.threeWay
-
Standardmäßig schlägt
gitamfehl, wenn der Patch nicht sauber angewendet werden kann. Wenn dieser Wert auf true gesetzt ist, weist diese Einstellunggitaman, auf einen 3-Wege-Merge zurückzufallen, wenn der Patch die Identität von Blobs aufzeichnet, auf die er angewendet werden soll, und wir diese Blobs lokal verfügbar haben (entspricht der Angabe der Option--3wayvon der Befehlszeile). Standardmäßig ist diesfalse. Siehe git-am[1]. - apply.ignoreWhitespace
-
Wenn auf change gesetzt, weist es git apply an, Änderungen im Whitespace zu ignorieren, auf die gleiche Weise wie die Option
--ignore-space-change. Wenn auf eines der folgenden gesetzt: no, none, never, false, weist es git apply an, alle Whitespace-Unterschiede zu respektieren. Siehe git-apply[1]. - apply.whitespace
-
Weist git apply an, wie mit Whitespace umgegangen werden soll, auf die gleiche Weise wie die Option
--whitespace. Siehe git-apply[1]. - attr.tree
-
Eine Referenz auf einen Baum im Repository, aus dem Attribute gelesen werden sollen, anstelle der Datei
.gitattributesim Arbeitsbaum. Wenn der Wert nicht zu einem gültigen Baum-Objekt aufgelöst werden kann, wird stattdessen ein leerer Baum verwendet. Wenn die UmgebungsvariableGIT_ATTR_SOURCEoder die Befehlszeilenoption--attr-sourceverwendet wird, hat diese Konfigurationsvariable keine Auswirkung.
|
Hinweis
|
Die Konfigurationsoptionen in bitmapPseudoMerge.* gelten als EXPERIMENTELL und können sich in Zukunft ändern oder ganz entfernt werden. Weitere Informationen zur Pseudo-Merge-Bitmap-Funktion finden Sie im Abschnitt "Pseudo-merge bitmaps" von gitpacking[7]. |
- bitmapPseudoMerge.<name>.pattern
-
Regulärer Ausdruck, der zur Übereinstimmung von Referenznamen verwendet wird. Commits, auf die von Referenzen gezeigt wird, die diesem Muster entsprechen (und die unten genannten Kriterien erfüllen, wie z.B.
bitmapPseudoMerge.<name>.sampleRateundbitmapPseudoMerge.<name>.threshold), werden für die Aufnahme in eine Pseudo-Merge-Bitmap berücksichtigt.Commits werden in Pseudo-Merge-Gruppen gruppiert, basierend darauf, ob eine oder mehrere Referenzen, die auf einen bestimmten Commit zeigen, dem Muster entsprechen, das ein erweiterter regulärer Ausdruck ist.
Innerhalb einer Pseudo-Merge-Gruppe können Commits weiter in Untergruppen gruppiert werden, basierend auf den Erfassungsgruppen im Muster. Diese Untergruppierungen werden aus den regulären Ausdrücken gebildet, indem alle Erfassungsgruppen aus dem regulären Ausdruck mit einem - Bindestrich dazwischen verkettet werden.
Wenn das Muster beispielsweise
refs/tags/lautet, werden alle Tags (vorausgesetzt, sie erfüllen die unten genannten Kriterien) für dieselbe Pseudo-Merge-Gruppe berücksichtigt. Wenn das Muster stattdessenrefs/remotes/([0-9])+/tags/lautet, werden Tags von verschiedenen Remote-Repositories in separate Pseudo-Merge-Gruppen gruppiert, basierend auf der Remote-Nummer. - bitmapPseudoMerge.<name>.decay
-
Bestimmt die Rate, mit der aufeinanderfolgende Pseudo-Merge-Bitmap-Gruppen kleiner werden. Muss nicht-negativ sein. Dieser Parameter kann als
kin der Funktionf(n)=C*n^-kbetrachtet werden, wobeif(n) die Größe der `n`-ten Gruppe ist.Wenn die Zerfallsrate gleich
0gesetzt wird, sind alle Gruppen gleich groß. Wenn die Zerfallsrate gleich1gesetzt wird, ist die `n`-te Gruppe1/nso groß wie die anfängliche Gruppe. Höhere Werte der Zerfallsrate bewirken, dass aufeinanderfolgende Gruppen mit zunehmender Rate schrumpfen. Standardmäßig ist dies1.Wenn alle Gruppen gleich groß sind, ist es möglich, dass Gruppen, die neuere Commits enthalten, seltener verwendet werden können als frühere Gruppen, da es wahrscheinlicher ist, dass die Referenzen, die auf neuere Commits zeigen, häufiger aktualisiert werden als eine Referenz, die auf einen alten Commit zeigt.
- bitmapPseudoMerge.<name>.sampleRate
-
Bestimmt den Anteil der nicht-bitmappten Commits (unter Referenzspitzen), die für die Aufnahme in eine instabile Pseudo-Merge-Bitmap ausgewählt werden. Muss zwischen
0und1(einschließlich) liegen. Standardmäßig ist dies1. - bitmapPseudoMerge.<name>.threshold
-
Bestimmt das Mindestalter von nicht-bitmappten Commits (unter Referenzspitzen, wie oben), die für die Aufnahme in eine instabile Pseudo-Merge-Bitmap in Frage kommen. Standardmäßig ist dies
1.week.ago. - bitmapPseudoMerge.<name>.maxMerges
-
Bestimmt die maximale Anzahl von Pseudo-Merge-Commits, unter denen Commits verteilt werden können.
Für Pseudo-Merge-Gruppen, deren Muster keine Erfassungsgruppen enthält, wird diese Einstellung für alle Commits angewendet, die dem regulären Ausdruck entsprechen. Für Muster mit einer oder mehreren Erfassungsgruppen wird diese Einstellung für jede einzelne Erfassungsgruppe angewendet.
Wenn Ihre Erfassungsgruppe beispielsweise
refs/tags/ist, werden alle Tags (sofern sie die unten genannten Kriterien erfüllen) in maximalmaxMergesPseudo-Merge-Commits verteilt. Wenn Ihre Erfassungsgruppe jedoch z. B.refs/remotes/([0-9]+)/tags/ist, wird diese Einstellung auf jeden Satz von Tags pro Remote einzeln angewendet.Muss nicht-negativ sein. Der Standardwert ist 64.
- bitmapPseudoMerge.<name>.stableThreshold
-
Bestimmt das Mindestalter von Commits (unter Referenzspitzen, wie oben, jedoch werden stabile Commits auch dann als Kandidaten betrachtet, wenn sie von einer Bitmap abgedeckt wurden), die für eine stabile Pseudo-Merge-Bitmap in Frage kommen. Standardmäßig ist dies
1.month.ago.Wenn dieser Schwellenwert auf einen kleineren Wert gesetzt wird (z.B. 1.week.ago), werden mehr stabile Gruppen generiert (was einmalige Generierungskosten verursacht), diese Gruppen werden aber im Laufe der Zeit wahrscheinlich veraltet sein. Die Verwendung eines größeren Wertes verursacht die entgegengesetzte Strafe (weniger stabile Gruppen, die aber nützlicher sind).
- bitmapPseudoMerge.<name>.stableSize
-
Bestimmt die Größe (in Anzahl der Commits) einer stabilen Pseudo-Merge-Bitmap. Standardmäßig ist dies
512. - blame.blankBoundary
-
Zeigt einen leeren Commit-Objektnamen für Rand-Commits in git-blame[1] an. Diese Option ist standardmäßig false.
- blame.coloring
-
Dies bestimmt das Farbschema, das auf die Ausgabe von blame angewendet wird. Es kann repeatedLines, highlightRecent oder none sein, was der Standardwert ist.
- blame.date
-
Gibt das Format an, das zur Ausgabe von Daten in git-blame[1] verwendet wird. Wenn nicht gesetzt, wird das ISO-Format verwendet. Für unterstützte Werte siehe die Diskussion der Option
--datein git-log[1]. - blame.showEmail
-
Zeigt die E-Mail-Adresse des Autors anstelle des Namens des Autors in git-blame[1]. Diese Option ist standardmäßig false.
- blame.showRoot
-
Behandelt keine Root-Commits als Randpunkte in git-blame[1]. Diese Option ist standardmäßig false.
- blame.ignoreRevsFile
-
Ignoriert Revisionen, die in der Datei aufgelistet sind, ein undokumentierter Objektname pro Zeile, in git-blame[1]. Leerzeichen und Kommentare, die mit
#beginnen, werden ignoriert. Diese Option kann mehrmals wiederholt werden. Leere Dateinamen setzen die Liste der ignorierten Revisionen zurück. Diese Option wird vor der Befehlszeilenoption--ignore-revs-filebehandelt. - blame.markUnblamableLines
-
Markiert Zeilen, die von einer ignorierten Revision geändert wurden, die wir keinem anderen Commit zuordnen konnten, mit einem * in der Ausgabe von git-blame[1].
- blame.markIgnoredLines
-
Markiert Zeilen, die von einer ignorierten Revision geändert wurden, die wir einem anderen Commit zugeordnet haben, mit einem ? in der Ausgabe von git-blame[1].
branch.autoSetupMerge-
Weist
gitbranch,gitswitchundgitcheckoutan, neue Branches so einzurichten, dass git-pull[1] vom Startpunkt-Branch aus ordnungsgemäß zusammengeführt wird. Beachten Sie, dass dieses Verhalten auch dann pro Branch über die Optionen--trackund--no-trackgewählt werden kann, wenn diese Option nicht gesetzt ist. Diese Option ist standardmäßig auftruegesetzt. Die gültigen Einstellungen sindfalse-
Es wird keine automatische Einrichtung vorgenommen.
true-
Automatische Einrichtung erfolgt, wenn der Startpunkt ein Remote-Tracking-Branch ist.
always-
Automatische Einrichtung erfolgt, wenn der Startpunkt entweder ein lokaler Branch oder ein Remote-Tracking-Branch ist.
inherit-
Wenn der Startpunkt eine Tracking-Konfiguration hat, wird diese auf den neuen Branch kopiert.
simple-
Automatische Einrichtung erfolgt nur, wenn der Startpunkt ein Remote-Tracking-Branch ist und der neue Branch denselben Namen wie der Remote-Branch hat.
branch.autoSetupRebase-
Wenn ein neuer Branch mit
gitbranch,gitswitchodergitcheckouterstellt wird, der einen anderen Branch verfolgt, weist diese Variable Git an, Pull so einzurichten, dass stattdessen gerebased wird (siehebranch.<name>.rebase). Die gültigen Einstellungen sindSiehe
branch.autoSetupMergefür Details zur Einrichtung eines Branches zum Verfolgen eines anderen Branches. Diese Option ist standardmäßig aufnevergesetzt. branch.sort-
Diese Variable steuert die Sortierreihenfolge von Branches, wenn sie von git-branch[1] angezeigt werden. Ohne die Option
--sort=<value> wird der Wert dieser Variable als Standard verwendet. Siehe git-for-each-ref[1] Feldnamen für gültige Werte. branch.<name>.remote-
Wenn sich auf Branch <name>, weist es
gitfetchundgitpushan, von welchem Remote abgerufen oder wohin gepusht werden soll. Das Remote zum Pushen kann mitremote.pushDefault(für alle Branches) überschrieben werden. Das Remote zum Pushen für den aktuellen Branch kann weiter mitbranch.<name>.pushRemoteüberschrieben werden. Wenn kein Remote konfiguriert ist oder wenn Sie sich auf keinem Branch befinden und mehr als ein Remote im Repository definiert ist, wird standardmäßigoriginfür das Abrufen undremote.pushDefaultfür das Pushen verwendet. Zusätzlich ist.(ein Punkt) das aktuelle lokale Repository (ein Punkt-Repository), siehebranch.<name>.merge's letzter Hinweis unten. branch.<name>.pushRemote-
Wenn auf Branch <name>, überschreibt es
branch.<name>.remotezum Pushen. Es überschreibt auchremote.pushDefaultzum Pushen vom Branch <name>. Wenn Sie von einem Ort abrufen (z.B. Ihrem Upstream) und an einen anderen Ort pushen (z.B. Ihr eigenes Publishing-Repository), möchten Sieremote.pushDefaultsetzen, um das Remote zum Pushen für alle Branches anzugeben, und diese Option verwenden, um es für einen bestimmten Branch zu überschreiben. branch.<name>.merge-
Definiert zusammen mit
branch.<name>.remoteden Upstream-Branch für den angegebenen Branch. Es sagtgitfetch/gitpull/gitrebase, welcher Branch zusammengeführt werden soll und kann auchgitpushbeeinflussen (siehepush.default). Wenn Sie sich auf Branch <name> befinden, sagt esgitfetchden Standard-Refspec, der inFETCH_HEADzum Zusammenführen markiert werden soll. Der Wert wird wie der Remote-Teil eines Refspecs behandelt und muss einem Ref entsprechen, das vom Remote, das vonbranch.<name>.remoteangegeben wurde, abgerufen wird. Die Merge-Informationen werden vongitpull(das zuerstgitfetchaufruft) verwendet, um den Standard-Branch für das Zusammenführen nachzuschlagen. Ohne diese Option führtgitpullstandardmäßig den ersten abgerufenen Refspec zusammen. Geben Sie mehrere Werte an, um einen Oktopus-Merge zu erhalten. Wenn Siegitpullso einrichten möchten, dass er in <name> von einem anderen Branch im lokalen Repository zusammenführt, können Siebranch.<name>.mergeauf den gewünschten Branch verweisen lassen und den relativen Pfad.(ein Punkt) fürbranch.<name>.remoteverwenden. branch.<name>.mergeOptions-
Setzt Standardoptionen für das Zusammenführen in den Branch <name>. Die Syntax und die unterstützten Optionen sind dieselben wie bei git-merge[1], aber Optionen mit Leerzeichen sind derzeit nicht unterstützt.
branch.<name>.rebase-
Wenn wahr, rebased den Branch <name> auf den abgerufenen Branch, anstatt den Standard-Branch vom Standard-Remote zusammenzuführen, wenn
gitpullausgeführt wird. Siehepull.rebase, um dies nicht-branchspezifisch zu tun.Wenn der Wert
merges(oder einfachm) ist, wird die Option--rebase-mergesangitrebaseübergeben, damit die lokalen Merge-Commits in den Rebase einbezogen werden (siehe git-rebase[1] für Details).Wenn der Wert
interactive(oder einfachi) ist, wird der Rebase im interaktiven Modus ausgeführt.HINWEIS: Dies ist eine potenziell gefährliche Operation; verwenden Sie sie nicht, es sei denn, Sie verstehen die Auswirkungen (siehe git-rebase[1] für Details).
branch.<name>.description-
Branch-Beschreibung, kann mit
gitbranch--edit-descriptionbearbeitet werden. Die Branch-Beschreibung wird automatisch demformat-patch-Cover-Letter oder derrequest-pull-Zusammenfassung hinzugefügt. - browser.<tool>.cmd
-
Gibt den Befehl zum Aufrufen des angegebenen Browsers an. Der angegebene Befehl wird in der Shell ausgewertet, wobei die URLs als Argumente übergeben werden. (Siehe git-web--browse[1].)
- browser.<tool>.path
-
Überschreibt den Pfad für das angegebene Werkzeug, das zum Anzeigen von HTML-Hilfe (siehe Option
-win git-help[1]) oder eines funktionierenden Repositorys in gitweb (siehe git-instaweb[1]) verwendet werden kann. - bundle.*
-
Die Schlüssel
bundle.*können in einer Bundle-Listen-Datei erscheinen, die über die Optiongitclone--bundle-urigefunden wird. Diese Schlüssel haben derzeit keine Auswirkungen, wenn sie in einer Repository-Konfigurationsdatei platziert werden, obwohl sich dies in Zukunft ändern wird. Weitere Details finden Sie in des Bundle-URI-Design-Dokuments. - bundle.version
-
Dieser ganzzahlige Wert gibt die Version des von der Bundle-Liste verwendeten Bundle-Listenformats an. Derzeit ist der einzige akzeptierte Wert
1. - bundle.mode
-
Dieser Zeichenkettenwert sollte entweder
alloderanysein. Dieser Wert beschreibt, ob alle beworbenen Bundles erforderlich sind, um ein vollständiges Verständnis der gebündelten Informationen zu entpacken (all) oder ob eine der aufgelisteten Bundle-URIs ausreichend ist (any). - bundle.heuristic
-
Wenn dieser Schlüssel mit Zeichenkettenwert vorhanden ist, dann ist die Bundle-Liste so konzipiert, dass sie gut mit inkrementellen
gitfetch-Befehlen funktioniert. Die Heuristik signalisiert, dass für jedes Bundle zusätzliche Schlüssel verfügbar sind, die dem Client helfen zu bestimmen, welche Untermenge von Bundles heruntergeladen werden soll. Der einzige derzeit verstandene Wert istcreationToken. - bundle.<id>.*
-
Die Schlüssel
bundle.<id>.*werden verwendet, um ein einzelnes Element in der Bundle-Liste zu beschreiben, das zur Identifizierung unter <id> gruppiert ist. - bundle.<id>.uri
-
Dieser Zeichenkettenwert definiert die URI, über die Git auf den Inhalt dieser <id> zugreifen kann. Diese URI kann eine Bundle-Datei oder eine andere Bundle-Liste sein.
checkout.defaultRemote-
Wenn Sie
gitcheckout<etwas> odergitswitch<etwas> ausführen und nur ein Remote haben, kann dies implizit auf das Auschecken und Verfolgen von z.B.origin/<etwas> zurückfallen. Dies funktioniert nicht mehr, sobald Sie mehr als ein Remote mit einer <etwas>-Referenz haben. Diese Einstellung ermöglicht es, den Namen eines bevorzugten Remotes festzulegen, das bei der Eindeutigkeitsbestimmung immer Vorrang hat. Der typische Anwendungsfall ist, dies auforiginzu setzen.Derzeit wird dies von git-switch[1] und git-checkout[1] verwendet, wenn
gitcheckout<etwas> odergitswitch<etwas> den <etwas>-Branch auf einem anderen Remote auscheckt, und von git-worktree[1], wenngitworktreeaddsich auf einen Remote-Branch bezieht. Diese Einstellung könnte in Zukunft für andere checkout-ähnliche Befehle oder Funktionalitäten verwendet werden. checkout.guess-
Stellt den Standardwert für die Option
--guessoder--no-guessingitcheckoutundgitswitchbereit. Siehe git-switch[1] und git-checkout[1]. checkout.workers-
Die Anzahl der parallelen Worker, die beim Aktualisieren des Arbeitsbaums verwendet werden. Standardmäßig ist dies eins, d.h. sequenzielle Ausführung. Wenn auf einen Wert kleiner als eins gesetzt, verwendet Git so viele Worker wie die Anzahl der verfügbaren logischen Kerne. Diese Einstellung und
checkout.thresholdForParallelismwirken sich auf alle Befehle aus, die einen Checkout durchführen. Z.B. checkout, clone, reset, sparse-checkout usw.HinweisParalleler Checkout liefert normalerweise eine bessere Leistung für Repositories auf SSDs oder über NFS. Für Repositories auf rotierenden Festplatten und/oder Maschinen mit einer kleinen Anzahl von Kernen ist der sequentielle Standard-Checkout oft leistungsfähiger. Die Größe und der Komprimierungsgrad eines Repositorys können ebenfalls beeinflussen, wie gut die parallele Version funktioniert. checkout.thresholdForParallelism-
Beim parallelen Checkout mit einer kleinen Anzahl von Dateien können die Kosten für das Erzeugen von Subprozessen und die Interprozesskommunikation die Vorteile der Parallelisierung überwiegen. Diese Einstellung ermöglicht es Ihnen, die Mindestanzahl von Dateien festzulegen, für die ein paralleler Checkout versucht werden soll. Standardmäßig ist dies 100.
- clean.requireForce
-
Ein boolescher Wert, der git-clean dazu bringt, die Löschung von Dateien zu verweigern, es sei denn, -f wird angegeben. Standardmäßig true.
clone.defaultRemoteName-
Der Name des Remotes, das beim Klonen eines Repositorys erstellt werden soll. Standardmäßig
origin. Er kann durch Angabe der Befehlszeilenoption--originfür git-clone[1] überschrieben werden. clone.rejectShallow-
Verhindert das Klonen eines Repositorys, wenn es flach ist. Dies kann durch Angabe der Option
--reject-shallowauf der Befehlszeile überschrieben werden. Siehe git-clone[1]. clone.filterSubmodules-
Wenn ein Filter für teilweises Klonen angegeben wird (siehe
--filterin git-rev-list[1]) und--recurse-submodulesverwendet wird, wird der Filter auch auf Submodule angewendet. - color.advice
-
Ein boolescher Wert, um Farben in Hinweisen zu aktivieren/deaktivieren (z.B. wenn ein Push fehlschlug, siehe
advice.*für eine Liste). Kann aufalways,false(odernever) oderauto(odertrue) gesetzt werden, wobei Farben nur verwendet werden, wenn die Fehlerausgabe an ein Terminal geht. Wenn nicht gesetzt, wird der Wert voncolor.uiverwendet (autoist Standard). - color.advice.hint
-
Verwendet angepasste Farben für Hinweise.
- color.blame.highlightRecent
-
Gibt die Linien-Annotation-Farbe für
gitblame--color-by-agean, abhängig vom Alter der Linie.Diese Einstellung sollte auf eine durch Kommas getrennte Liste von Farb- und Datumseinstellungen gesetzt werden, beginnend und endend mit einer Farbe. Die Daten sollten von ältesten zu neuesten gesetzt werden. Die Metadaten werden mit den angegebenen Farben gefärbt, wenn die Zeile vor dem angegebenen Zeitstempel eingeführt wurde, wobei ältere, zeitgestempelte Farben überschrieben werden.
Anstelle eines absoluten Zeitstempels funktionieren auch relative Zeitstempel, z.B. ist
2.weeks.agogültig, um alles älter als 2 Wochen anzusprechen.Standardmäßig ist dies
blue,12monthago,white,1monthago,red, was alles älter als ein Jahr blau färbt, Änderungen zwischen einem Monat und einem Jahr vor heute weiß bleiben und Zeilen, die im letzten Monat eingeführt wurden, rot gefärbt werden. - color.blame.repeatedLines
-
Verwendet die angegebene Farbe, um Linienannotationen für
gitblame--color-lineszu kolorieren, wenn sie vom selben Commit wie die vorherige Zeile stammen. Standardmäßig cyan. - color.branch
-
Ein boolescher Wert, um Farbe in der Ausgabe von git-branch[1] zu aktivieren/deaktivieren. Kann auf
always,false(odernever) oderauto(odertrue) gesetzt werden, wobei Farben nur verwendet werden, wenn die Ausgabe an ein Terminal geht. Wenn nicht gesetzt, wird der Wert voncolor.uiverwendet (autoist Standard). - color.branch.<slot>
-
Verwendet angepasste Farbe für die Branch-Kolorierung. <slot> ist einer von
current(der aktuelle Branch),local(ein lokaler Branch),remote(ein Remote-Tracking-Branch in refs/remotes/),upstream(Upstream-Tracking-Branch),plain(andere Refs). - color.diff
-
Ob ANSI-Escape-Sequenzen verwendet werden sollen, um Patches farbig darzustellen. Wenn dies auf
alwaysgesetzt ist, verwenden git-diff[1], git-log[1] und git-show[1] Farben für alle Patches. Wenn es auftrueoderautogesetzt ist, verwenden diese Befehle Farben nur, wenn die Ausgabe an das Terminal erfolgt. Wenn nicht gesetzt, wird der Wert voncolor.uiverwendet (autoist Standard).Dies wirkt sich nicht auf git-format-patch[1] oder die git-diff-* Plumbing-Befehle aus. Kann auf der Befehlszeile mit der Option
--color[=<when>] überschrieben werden. - color.diff.<slot>
-
Verwenden Sie angepasste Farben für die Diff-Kolorierung. <slot> gibt an, welcher Teil des Patches die angegebene Farbe verwenden soll, und ist einer von
context(Kontexttext –plainist ein historisches Synonym),meta(Metainformationen),frag(Hunk-Header), func (Funktion im Hunk-Header),old(entfernte Zeilen),new(hinzugefügte Zeilen),commit(Commit-Header),whitespace(Hervorhebung von Whitespace-Fehlern),oldMoved(gelöschte Zeilen),newMoved(hinzugefügte Zeilen),oldMovedDimmed,oldMovedAlternative,oldMovedAlternativeDimmed,newMovedDimmed,newMovedAlternativenewMovedAlternativeDimmed(Details finden Sie in der Einstellung <mode> von --color-moved in git-diff[1]),contextDimmed,oldDimmed,newDimmed,contextBold,oldBoldundnewBold(Details finden Sie in git-range-diff[1]). - color.decorate.<slot>
-
Verwenden Sie angepasste Farben für die Ausgabe von git log --decorate. <slot> ist einer von
branch,remoteBranch,tag,stashoderHEADfür lokale Zweige, Remote-Tracking-Zweige, Tags, Stash bzw. HEAD undgraftedfür veredelte Commits. - color.grep
-
Wenn auf
alwaysgesetzt, werden Übereinstimmungen immer hervorgehoben. Wennfalse(odernever), niemals. Wenn auftrueoderautogesetzt, wird Farbe nur verwendet, wenn die Ausgabe auf das Terminal geschrieben wird. Wenn nicht gesetzt, wird der Wert voncolor.uiverwendet (autoals Standard). - color.grep.<slot>
-
Verwenden Sie angepasste Farben für die Grep-Kolorierung. <slot> gibt an, welcher Teil der Zeile die angegebene Farbe verwenden soll, und ist einer von
context-
Nicht übereinstimmender Text in Kontextzeilen (bei Verwendung von
-A,-Boder-C) filename-
Dateinamenpräfix (bei Nichtverwendung von
-h) function-
Funktionsnamenzeilen (bei Verwendung von
-p) lineNumber-
Zeilennummernpräfix (bei Verwendung von
-n) column-
Spaltennummernpräfix (bei Verwendung von
--column) match-
Übereinstimmender Text (wie die Einstellung
matchContextundmatchSelected) matchContext-
Übereinstimmender Text in Kontextzeilen
matchSelected-
Übereinstimmender Text in ausgewählten Zeilen. Wird auch verwendet, um die folgenden git-log[1]-Unterbefehle anzupassen:
--grep,--authorund--committer. selected-
Nicht übereinstimmender Text in ausgewählten Zeilen. Wird auch verwendet, um die folgenden git-log[1]-Unterbefehle anzupassen:
--grep,--authorund--committer. separator-
Trennzeichens zwischen Feldern auf einer Zeile (
:,-und=) und zwischen Hunks (--)
- color.interactive
-
Wenn auf
alwaysgesetzt, werden interaktive Aufforderungen und Anzeigen (wie die von "git-add --interactive" und "git-clean --interactive" verwendeten) immer farblich hervorgehoben. Wenn falsch (odernever), niemals. Wenn auftrueoderautogesetzt, wird Farbe nur verwendet, wenn die Ausgabe auf das Terminal erfolgt. Wenn nicht gesetzt, wird der Wert voncolor.uiverwendet (autoals Standard). - color.interactive.<slot>
-
Verwenden Sie angepasste Farben für die Ausgabe von git add --interactive und git clean --interactive. <slot> kann
prompt,header,helpodererrorsein, für vier verschiedene Arten von normaler Ausgabe von interaktiven Befehlen. - color.pager
-
Ein boolescher Wert, der angibt, ob die Modi mit Farb-Auto-Einstellung die Ausgabe an den Pager kolorieren sollen. Standard ist true; setzen Sie diesen Wert auf false, wenn Ihr Pager keine ANSI-Farbcodes versteht.
- color.push
-
Ein boolescher Wert, um Farben in Push-Fehlermeldungen zu aktivieren/deaktivieren. Kann auf
always,false(odernever) oderauto(odertrue) gesetzt werden. In diesem Fall werden Farben nur verwendet, wenn die Fehlerausgabe an ein Terminal erfolgt. Wenn nicht gesetzt, wird der Wert voncolor.uiverwendet (autoals Standard). - color.push.error
-
Verwenden Sie eine angepasste Farbe für Push-Fehler.
- color.remote
-
Wenn gesetzt, werden Schlüsselwörter am Anfang der Zeile hervorgehoben. Die Schlüsselwörter sind "error", "warning", "hint" und "success" und werden nicht fallweise behandelt. Kann auf
always,false(odernever) oderauto(odertrue) gesetzt werden. Wenn nicht gesetzt, wird der Wert voncolor.uiverwendet (autoals Standard). - color.remote.<slot>
-
Verwenden Sie eine angepasste Farbe für jedes Remote-Schlüsselwort. <slot> kann
hint,warning,successodererrorsein, die den entsprechenden Schlüsselwörtern entsprechen. - color.showBranch
-
Ein boolescher Wert, um Farbe in der Ausgabe von git-show-branch[1] zu aktivieren/deaktivieren. Kann auf
always,false(odernever) oderauto(odertrue) gesetzt werden. In diesem Fall werden Farben nur verwendet, wenn die Ausgabe auf ein Terminal erfolgt. Wenn nicht gesetzt, wird der Wert voncolor.uiverwendet (autoals Standard). - color.status
-
Ein boolescher Wert, um Farbe in der Ausgabe von git-status[1] zu aktivieren/deaktivieren. Kann auf
always,false(odernever) oderauto(odertrue) gesetzt werden. In diesem Fall werden Farben nur verwendet, wenn die Ausgabe auf ein Terminal erfolgt. Wenn nicht gesetzt, wird der Wert voncolor.uiverwendet (autoals Standard). - color.status.<slot>
-
Verwenden Sie eine angepasste Farbe für die Status-Kolorierung. <slot> ist einer von
header(der Header-Text der Statusmeldung),addedoderupdated(Dateien, die hinzugefügt, aber nicht committet wurden),changed(Dateien, die geändert, aber nicht im Index hinzugefügt wurden),untracked(Dateien, die von Git nicht verfolgt werden),branch(der aktuelle Zweig),nobranch(die Farbe, in der die Warnung *no branch* angezeigt wird, standardmäßig rot),localBranchoderremoteBranch(die lokalen und Remote-Zweig-Namen, bzw. wenn Zweig- und Tracking-Informationen im Kurzformat des Status angezeigt werden) oderunmerged(Dateien mit nicht zusammengeführten Änderungen). - color.transport
-
Ein boolescher Wert, um Farbe bei abgelehnten Pushes zu aktivieren/deaktivieren. Kann auf
always,false(odernever) oderauto(odertrue) gesetzt werden. In diesem Fall werden Farben nur verwendet, wenn die Fehlerausgabe an ein Terminal erfolgt. Wenn nicht gesetzt, wird der Wert voncolor.uiverwendet (autoals Standard). - color.transport.rejected
-
Verwenden Sie eine angepasste Farbe, wenn ein Push abgelehnt wurde.
- color.ui
-
Diese Variable bestimmt den Standardwert für Variablen wie
color.diffundcolor.grep, die die Verwendung von Farben pro Befehlsfamilie steuern. Ihr Geltungsbereich wird erweitert, wenn weitere Befehle Konfigurationen für die Einstellung eines Standardwerts für die Option--colorerhalten. Setzen Sie sie auffalseodernever, wenn Git-Befehle keine Farbe verwenden sollen, es sei denn, sie werden explizit mit einer anderen Konfiguration oder der Option--coloraktiviert. Setzen Sie sie aufalways, wenn Sie möchten, dass alle Ausgaben, die nicht für die maschinelle Verarbeitung bestimmt sind, Farbe verwenden. Setzen Sie sie auftrueoderauto(dies ist seit Git 1.8.4 der Standard), wenn Sie möchten, dass solche Ausgaben Farbe verwenden, wenn sie auf das Terminal geschrieben werden. - column.ui
-
Gibt an, ob unterstützte Befehle in Spalten ausgeben sollen. Diese Variable besteht aus einer Liste von durch Leerzeichen oder Kommas getrennten Token.
Diese Optionen steuern, wann die Funktion aktiviert werden soll (Standard ist never)
Diese Optionen steuern das Layout (Standard ist column). Die Einstellung einer dieser Optionen impliziert always, wenn keine der Optionen always, never oder auto angegeben ist.
Schließlich können diese Optionen mit einer Layout-Option kombiniert werden (Standard ist nodense)
- column.branch
-
Gibt an, ob die Zweigliste in
git branchin Spalten ausgegeben werden soll. Details siehecolumn.ui. - column.clean
-
Gibt das Layout beim Auflisten von Elementen in
git clean -ian, das Dateien und Verzeichnisse immer in Spalten anzeigt. Details siehecolumn.ui. - column.status
-
Gibt an, ob unverfolgte Dateien in
git statusin Spalten ausgegeben werden sollen. Details siehecolumn.ui. - column.tag
-
Gibt an, ob Tag-Listen in
git tagin Spalten ausgegeben werden sollen. Details siehecolumn.ui.
commit.cleanup-
Diese Einstellung überschreibt den Standardwert der Option
--cleanupingit commit. Details siehe git-commit[1]. Das Ändern des Standardwerts kann nützlich sein, wenn Sie Zeilen, die mit dem Kommentarzeichen beginnen (core.commentChar, Standard#), in Ihrer Log-Nachricht immer beibehalten möchten. In diesem Fall würden Siegit config commit.cleanup whitespaceausführen (beachten Sie, dass Sie die Hilfezeilen, die mit dem Kommentarzeichen beginnen, in der Commit-Log-Vorlage selbst entfernen müssen, wenn Sie dies tun). commit.gpgSign-
Ein boolescher Wert, der angibt, ob alle Commits GPG-signiert werden sollen. Die Verwendung dieser Option bei Vorgängen wie Rebase kann dazu führen, dass eine große Anzahl von Commits signiert wird. Es kann praktisch sein, einen Agenten zu verwenden, um die Eingabe Ihrer GPG-Passphrase mehrmals zu vermeiden.
commit.status-
Ein boolescher Wert, um die Einbeziehung von Statusinformationen in die Commit-Nachrichten-Vorlage beim Verwenden eines Editors zur Vorbereitung der Commit-Nachricht zu aktivieren/deaktivieren. Standard ist
true. commit.template-
Gibt den Pfadnamen einer Datei an, die als Vorlage für neue Commit-Nachrichten verwendet werden soll.
commit.verbose-
Ein boolescher Wert oder eine Ganzzahl, um den Grad der Ausführlichkeit bei
git commitanzugeben. Details siehe git-commit[1]. - commitGraph.generationVersion
-
Gibt den Typ der zu verwendenden Generierungsnummerversion beim Schreiben oder Lesen der Commit-Graph-Datei an. Wenn Version 1 angegeben ist, werden die korrigierten Commit-Daten nicht geschrieben oder gelesen. Standard ist 2.
- commitGraph.maxNewFilters
-
Gibt den Standardwert für die Option
--max-new-filtersvongit commit-graph writean (siehe git-commit-graph[1]). - commitGraph.changedPaths
-
Wenn true, berechnet und schreibt
git commit-graph writestandardmäßig Bloom-Filter für geänderte Pfade, was dem Übergeben von--changed-pathsentspricht. Wenn false oder nicht gesetzt, werden Bloom-Filter für geänderte Pfade währendgit commit-graph writenur geschrieben, wenn die Filter bereits in der aktuellen Commit-Graph-Datei vorhanden sind. Dies entspricht dem Standardverhalten vongit commit-graph writeohne Option--[no-]changed-paths. Um eine Commit-Graph-Datei ohne Filter neu zu schreiben, verwenden Sie die Option--no-changed-paths. Die Befehlszeilenoption--[no-]changed-pathshat immer Vorrang vor dieser Konfiguration. Standard ist nicht gesetzt. - commitGraph.readChangedPaths
-
Veraltet. Entspricht `commitGraph.changedPathsVersion=-1` wenn true, und `commitGraph.changedPathsVersion=0` wenn false. (Wenn `commitGraph.changedPathVersion` ebenfalls gesetzt ist, hat `commitGraph.changedPathsVersion` Vorrang.)
- commitGraph.changedPathsVersion
-
Gibt die Version der Bloom-Filter für geänderte Pfade an, die Git lesen und schreiben wird. Kann -1, 0, 1 oder 2 sein. Beachten Sie, dass Versionen größer als 1 mit älteren Git-Versionen, die diese Versionen noch nicht verstehen, inkompatibel sein können. Seien Sie vorsichtig, wenn Sie in einer Umgebung mit gemischten Versionen arbeiten.
Standard ist -1.
Wenn -1, verwendet Git die Version der Bloom-Filter für geänderte Pfade im Repository und standardmäßig 1, wenn keine vorhanden sind.
Wenn 0, liest Git keine Bloom-Filter und schreibt Version 1 Bloom-Filter, wenn zum Schreiben aufgefordert wird.
Wenn 1, liest Git nur Version 1 Bloom-Filter und schreibt Version 1 Bloom-Filter.
Wenn 2, liest Git nur Version 2 Bloom-Filter und schreibt Version 2 Bloom-Filter.
Weitere Informationen finden Sie in git-commit-graph[1].
- completion.commands
-
Dies wird nur von git-completion.bash verwendet, um Befehle zur Liste der vervollständigten Befehle hinzuzufügen oder daraus zu entfernen. Normalerweise werden nur Porcelain-Befehle und einige ausgewählte andere vervollständigt. Sie können weitere Befehle, durch Leerzeichen getrennt, in dieser Variablen hinzufügen. Das Präfixieren des Befehls mit - entfernt ihn aus der vorhandenen Liste.
- core.fileMode
-
Teilt Git mit, ob die Ausführungsberechtigung von Dateien im Arbeitsverzeichnis beachtet werden soll.
Einige Dateisysteme verlieren das Ausführungsbit, wenn eine als ausführbar markierte Datei ausgecheckt wird, oder checken eine nicht ausführbare Datei mit gesetztem Ausführungsbit aus. git-clone[1] oder git-init[1] prüfen das Dateisystem, um zu sehen, ob es das Ausführungsbit korrekt behandelt, und diese Variable wird entsprechend automatisch gesetzt.
Ein Repository kann sich jedoch auf einem Dateisystem befinden, das die Dateimodus korrekt behandelt, und diese Variable wird beim Erstellen auf true gesetzt, kann aber später von einer anderen Umgebung aus zugänglich gemacht werden, die den Dateimodus verliert (z. B. Export von ext4 über einen CIFS-Mount, Besuch eines von Cygwin erstellten Repositorys mit Git für Windows oder Eclipse). In diesem Fall kann es notwendig sein, diese Variable auf false zu setzen. Siehe git-update-index[1].
Der Standardwert ist true (wenn core.filemode nicht in der Konfigurationsdatei angegeben ist).
- core.hideDotFiles
-
(Nur Windows) Wenn true, werden neu erstellte Verzeichnisse und Dateien, deren Name mit einem Punkt beginnt, als versteckt markiert. Wenn dotGitOnly, wird nur das Verzeichnis
.git/versteckt, aber keine anderen Dateien, die mit einem Punkt beginnen. Der Standardmodus ist dotGitOnly. - core.ignoreCase
-
Interne Variable, die verschiedene Workarounds aktiviert, um Git die bessere Arbeit auf Dateisystemen zu ermöglichen, die nicht case-sensitiv sind, wie APFS, HFS+, FAT, NTFS usw. Wenn beispielsweise eine Verzeichnisauflistung "makefile" findet, wenn Git "Makefile" erwartet, geht Git davon aus, dass es sich um dieselbe Datei handelt und merkt sie sich weiterhin als "Makefile".
Der Standardwert ist false, außer dass git-clone[1] oder git-init[1] das Dateisystem prüft und `core.ignoreCase` bei Bedarf auf true setzt, wenn das Repository erstellt wird.
Git ist auf die korrekte Konfiguration dieser Variable für Ihr Betriebssystem und Dateisystem angewiesen. Das Ändern dieses Werts kann zu unerwartetem Verhalten führen.
- core.precomposeUnicode
-
Diese Option wird nur von der Mac OS-Implementierung von Git verwendet. Wenn core.precomposeUnicode=true, kehrt Git die Unicode-Zerlegung von Dateinamen, die von Mac OS durchgeführt wird, um. Dies ist nützlich, wenn Sie ein Repository zwischen Mac OS und Linux oder Windows teilen. (Git für Windows 1.7.10 oder höher ist erforderlich, oder Git unter Cygwin 1.7). Wenn false, werden Dateinamen von Git vollständig transparent behandelt, was mit älteren Git-Versionen abwärtskompatibel ist.
- core.protectHFS
-
Wenn auf true gesetzt, werden keine Pfade ausgecheckt, die auf einem HFS+-Dateisystem als äquivalent zu
.gitbetrachtet würden. Standard isttrueunter Mac OS undfalseüberall sonst. - core.protectNTFS
-
Wenn auf true gesetzt, werden keine Pfade ausgecheckt, die Probleme mit dem NTFS-Dateisystem verursachen würden, z. B. Konflikte mit 8.3 "kurzen" Namen. Standard ist
trueunter Windows undfalseüberall sonst. - core.fsmonitor
-
Wenn auf true gesetzt, wird der integrierte Dateisystemüberwachungsdaemon für dieses Arbeitsverzeichnis aktiviert (git-fsmonitor--daemon[1]).
Ähnlich wie bei Hook-basierten Dateisystemmonitoren kann der integrierte Dateisystemmonitor Git-Befehle, die den Git-Index aktualisieren müssen (z. B.
git status), in einem Arbeitsverzeichnis mit vielen Dateien beschleunigen. Der integrierte Monitor macht die Installation und Wartung eines externen Tools von Drittanbietern überflüssig.Der integrierte Dateisystemmonitor ist derzeit nur auf einer begrenzten Anzahl unterstützter Plattformen verfügbar. Dazu gehören derzeit Windows und MacOS.
Andernfalls enthält diese Variable den Pfadnamen des "fsmonitor"-Hook-Befehls.
Dieser Hook-Befehl wird verwendet, um alle Dateien zu identifizieren, die sich seit dem angeforderten Datum/Uhrzeit geändert haben könnten. Diese Informationen werden verwendet, um Git zu beschleunigen, indem unnötiges Scannen von Dateien vermieden wird, die sich nicht geändert haben.
Siehe den Abschnitt "fsmonitor-watchman" in githooks[5].
Beachten Sie, dass bei gleichzeitiger Verwendung mehrerer Git-Versionen, z. B. einer Version auf der Kommandozeile und einer anderen Version in einem IDE-Tool, die Definition von
core.fsmonitorerweitert wurde, um boolesche Werte zusätzlich zu Hook-Pfadnamen zuzulassen. Git-Versionen 2.35.1 und früher verstehen die booleschen Werte nicht und betrachten die Werte "true" oder "false" als aufzurufende Hook-Pfadnamen. Git-Versionen 2.26 bis 2.35.1 verwenden standardmäßig das Hook-Protokoll V2 und greifen auf keinen fsmonitor zurück (vollständiger Scan). Git-Versionen vor 2.26 verwenden standardmäßig das Hook-Protokoll V1 und gehen stillschweigend davon aus, dass keine Änderungen gemeldet wurden (kein Scan), sodass Statusbefehle möglicherweise unvollständige Ergebnisse liefern. Aus diesem Grund ist es am besten, alle Ihre Git-Versionen zu aktualisieren, bevor Sie den integrierten Dateisystemmonitor verwenden. - core.fsmonitorHookVersion
-
Legt die zu verwendende Protokollversion beim Aufrufen des "fsmonitor"-Hooks fest.
Es gibt derzeit die Versionen 1 und 2. Wenn dies nicht gesetzt ist, wird zuerst Version 2 versucht und wenn dies fehlschlägt, dann Version 1. Version 1 verwendet einen Zeitstempel als Eingabe, um festzustellen, welche Dateien seit diesem Zeitpunkt geändert wurden, aber einige Monitore wie Watchman haben Rennbedingungen, wenn sie mit einem Zeitstempel verwendet werden. Version 2 verwendet einen undurchsichtigen String, so dass der Monitor etwas zurückgeben kann, das verwendet werden kann, um festzustellen, welche Dateien ohne Rennbedingungen geändert wurden.
- core.trustctime
-
Wenn false, werden die ctime-Unterschiede zwischen dem Index und dem Arbeitsverzeichnis ignoriert; nützlich, wenn die Inode-Änderungszeit regelmäßig von etwas außerhalb von Git geändert wird (Dateisystem-Crawler und einige Backup-Systeme). Siehe git-update-index[1]. Standardmäßig true.
- core.splitIndex
-
Wenn true, wird die Split-Index-Funktion des Index verwendet. Siehe git-update-index[1]. Standardmäßig false.
- core.untrackedCache
-
Bestimmt, was mit der Funktion des Caches für unverfolgte Dateien des Index geschehen soll. Er wird beibehalten, wenn diese Variable nicht gesetzt oder auf
keepgesetzt ist. Er wird automatisch hinzugefügt, wenn er auftruegesetzt ist. Und er wird automatisch entfernt, wenn er auffalsegesetzt ist. Bevor Sie ihn auftruesetzen, sollten Sie prüfen, ob mtime auf Ihrem System ordnungsgemäß funktioniert. Siehe git-update-index[1]. Standardmäßigkeep, es sei denn,feature.manyFilesist aktiviert, was diese Einstellung standardmäßig auftruesetzt. - core.checkStat
-
Wenn fehlend oder auf
defaultgesetzt, werden viele Felder in der Stat-Struktur überprüft, um zu erkennen, ob eine Datei geändert wurde, seit Git sie betrachtet hat. Wenn diese Konfigurationsvariable aufminimalgesetzt ist, werden der Subsekundenanteil von mtime und ctime, die uid und gid des Eigentümers der Datei, die Inode-Nummer (und die Gerätenummer, wenn Git so kompiliert wurde, dass es sie verwendet) aus der Überprüfung dieser Felder ausgeschlossen, sodass nur der Ganzsekundenanteil von mtime (und ctime, wenncore.trustCtimegesetzt ist) und die Dateigröße überprüft werden.Es gibt Implementierungen von Git, die in einigen Feldern keine brauchbaren Werte hinterlassen (z. B. JGit); durch den Ausschluss dieser Felder aus dem Vergleich kann der
minimal-Modus die Interoperabilität verbessern, wenn dasselbe Repository gleichzeitig von diesen anderen Systemen verwendet wird. - core.quotePath
-
Befehle, die Pfade ausgeben (z. B. ls-files, diff), quotieren "ungewöhnliche" Zeichen im Pfadnamen, indem sie den Pfadnamen in doppelte Anführungszeichen setzen und diese Zeichen mit Backslashes escapen, ähnlich wie C Steuerzeichen (z. B. \t für TAB, \n für LF, \\ für Backslash) oder Bytes mit Werten größer als 0x80 (z. B. oktal \302\265 für "Mikro" in UTF-8) escapen. Wenn diese Variable auf false gesetzt ist, werden Bytes höher als 0x80 nicht mehr als "ungewöhnlich" betrachtet. Doppelte Anführungszeichen, Backslashes und Steuerzeichen werden immer escapet, unabhängig von der Einstellung dieser Variable. Ein einfaches Leerzeichen wird nicht als "ungewöhnlich" betrachtet. Viele Befehle können Pfadnamen mit der Option
-zvollständig unverändert ausgeben. Der Standardwert ist true. - core.eol
-
Legt den Zeilenumbruchtyp fest, der im Arbeitsverzeichnis für Dateien verwendet werden soll, die als Text markiert sind (entweder durch Setzen des Attributs
textoder durchtext=autound automatische Erkennung des Inhalts als Text durch Git). Alternativen sind lf, crlf und native, das den nativen Zeilenumbruch der Plattform verwendet. Der Standardwert istnative. Weitere Informationen zur Konvertierung von Zeilenumbrüchen finden Sie in gitattributes[5]. Beachten Sie, dass dieser Wert ignoriert wird, wenncore.autocrlfauftrueoderinputgesetzt ist. - core.safecrlf
-
Wenn true, wird Git überprüfen, ob die Konvertierung von
CRLFumkehrbar ist, wenn die Konvertierung von Zeilenumbrüchen aktiv ist. Git prüft, ob ein Befehl eine Datei im Arbeitsverzeichnis entweder direkt oder indirekt modifiziert. Zum Beispiel sollte das Committen einer Datei, gefolgt vom Auschecken derselben Datei, zur ursprünglichen Datei im Arbeitsverzeichnis führen. Wenn dies für die aktuelle Einstellung voncore.autocrlfnicht der Fall ist, wird Git die Datei ablehnen. Die Variable kann auf "warn" gesetzt werden, in diesem Fall wird Git nur eine Warnung über eine irreversible Konvertierung ausgeben, aber den Vorgang fortsetzen.Die CRLF-Konvertierung birgt eine geringe Gefahr der Datenbeschädigung. Wenn sie aktiviert ist, konvertiert Git CRLF zu LF während des Commits und LF zu CRLF während des Checkouts. Eine Datei, die vor dem Commit eine Mischung aus LF und CRLF enthält, kann von Git nicht neu erstellt werden. Für Textdateien ist dies das Richtige: Es korrigiert Zeilenenden, so dass wir nur LF-Zeilenenden im Repository haben. Aber für Binärdateien, die versehentlich als Text klassifiziert werden, kann die Konvertierung Daten beschädigen.
Wenn Sie eine solche Beschädigung frühzeitig erkennen, können Sie sie leicht beheben, indem Sie den Konvertierungstyp explizit in .gitattributes festlegen. Direkt nach dem Commit haben Sie die Originaldatei noch in Ihrem Arbeitsbaum, und diese Datei ist noch nicht beschädigt. Sie können Git explizit mitteilen, dass diese Datei binär ist, und Git wird die Datei entsprechend behandeln.
Leider können der gewünschte Effekt der Bereinigung von Textdateien mit gemischten Zeilenenden und der unerwünschte Effekt der Beschädigung von Binärdateien nicht unterschieden werden. In beiden Fällen werden CRLFs auf irreversible Weise entfernt. Für Textdateien ist dies das Richtige, da CRLFs Zeilenenden sind, während bei Binärdateien die Konvertierung von CRLFs Daten beschädigt.
Beachten Sie, dass diese Sicherheitsprüfung nicht bedeutet, dass ein Checkout eine Datei generiert, die mit einer anderen Einstellung von
core.eolundcore.autocrlfidentisch mit der Originaldatei ist, sondern nur für die aktuelle Einstellung. Zum Beispiel würde eine Textdatei mitLFmitcore.eol=lfakzeptiert und könnte später mitcore.eol=crlfausgecheckt werden, in welchem Fall die resultierende DateiCRLFenthalten würde, obwohl die OriginaldateiLFenthielt. In beiden Arbeitsbäumen wären die Zeilenenden jedoch konsistent, d.h. entweder alleLFoder alleCRLF, aber niemals gemischt. Eine Datei mit gemischten Zeilenenden würde durch dencore.safecrlf-Mechanismus gemeldet. - core.autocrlf
-
Das Setzen dieser Variable auf "true" ist dasselbe wie das Setzen des
text-Attributs auf "auto" für alle Dateien und core.eol auf "crlf". Setzen Sie es auf true, wenn SieCRLF-Zeilenenden in Ihrem Arbeitsverzeichnis haben möchten und das Repository LF-Zeilenenden hat. Diese Variable kann auf input gesetzt werden, in welchem Fall keine Ausgabe-Konvertierung durchgeführt wird. - core.checkRoundtripEncoding
-
Eine durch Kommas und/oder Leerzeichen getrennte Liste von Encodings, für die Git UTF-8-Roundtrip-Prüfungen durchführt, wenn sie in einem
working-tree-encoding-Attribut verwendet werden (siehe gitattributes[5]). Der Standardwert istSHIFT-JIS. - core.symlinks
-
Wenn false, werden symbolische Links als kleine Plain-Dateien ausgecheckt, die den Linktext enthalten. git-update-index[1] und git-add[1] ändern den aufgezeichneten Typ nicht in eine reguläre Datei. Nützlich auf Dateisystemen wie FAT, die keine symbolischen Links unterstützen.
Standard ist true, außer git-clone[1] oder git-init[1] werden beim Erstellen des Repositorys auf die passende Einstellung prüfen und core.symlinks auf false setzen.
- core.gitProxy
-
Ein "Proxy-Befehl", der ausgeführt wird (als Befehl Host Port) anstelle einer direkten Verbindung zum entfernten Server beim Verwenden des Git-Protokolls zum Abrufen. Wenn der Variablenwert im Format "BEFEHL für DOMAIN" vorliegt, wird der Befehl nur auf Hostnamen angewendet, die mit der angegebenen Domain-Zeichenfolge enden. Diese Variable kann mehrmals gesetzt werden und wird in der angegebenen Reihenfolge abgeglichen; die erste Übereinstimmung gewinnt.
Kann durch die Umgebungsvariable
GIT_PROXY_COMMANDüberschrieben werden (die immer universell gilt, ohne die spezielle "für"-Behandlung).Die spezielle Zeichenkette
nonekann als Proxy-Befehl verwendet werden, um anzugeben, dass für ein bestimmtes Domainmuster kein Proxy verwendet werden soll. Dies ist nützlich, um Server innerhalb einer Firewall von der Proxy-Nutzung auszuschließen, während für externe Domains ein gemeinsamer Proxy verwendet wird. - core.sshCommand
-
Wenn diese Variable gesetzt ist, verwenden
gitfetchundgitpushden angegebenen Befehl anstelle vonssh, wenn sie sich mit einem entfernten System verbinden müssen. Der Befehl hat dasselbe Format wie die UmgebungsvariableGIT_SSH_COMMANDund wird überschrieben, wenn die Umgebungsvariable gesetzt ist. - core.ignoreStat
-
Wenn true, vermeidet Git das Verwenden von lstat()-Aufrufen, um zu erkennen, ob Dateien geändert wurden, indem das "assume-unchanged"-Bit für die nachverfolgten Dateien gesetzt wird, die sowohl im Index als auch im Arbeitsbaum identisch aktualisiert wurden.
Wenn Dateien außerhalb von Git geändert werden, muss der Benutzer die geänderten Dateien explizit stagen (siehe z.B. den Abschnitt Beispiele in git-update-index[1]). Git erkennt Änderungen an diesen Dateien normalerweise nicht.
Dies ist nützlich auf Systemen, auf denen lstat()-Aufrufe sehr langsam sind, wie z.B. CIFS/Microsoft Windows.
Standardmäßig false.
- core.preferSymlinkRefs
-
Anstelle des Standardformats "symref" für HEAD und andere symbolische Referenzdateien werden symbolische Links verwendet. Dies ist manchmal erforderlich, um mit alten Skripten zu arbeiten, die erwarten, dass HEAD ein symbolischer Link ist.
Diese Konfiguration ist veraltet und wird in Git 3.0 entfernt. Symbolische Referenzen werden immer als textuelle Symrefs geschrieben.
- core.alternateRefsCommand
-
Beim Ankündigen von Spitzen verfügbarer Historie von einer Alternative wird die Shell verwendet, um den angegebenen Befehl anstelle von git-for-each-ref[1] auszuführen. Das erste Argument ist der absolute Pfad der Alternative. Die Ausgabe muss eine Hex-Objekt-ID pro Zeile enthalten (d.h. dasselbe wie von
gitfor-each-ref--format='%(objectname) produziert).Beachten Sie, dass Sie
gitfor-each-refim Allgemeinen nicht direkt in den Konfigurationswert einfügen können, da er keinen Repository-Pfad als Argument nimmt (Sie können den obigen Befehl aber in ein Shell-Skript verpacken). - core.alternateRefsPrefixes
-
Beim Auflisten von Referenzen von einer Alternative werden nur Referenzen aufgelistet, die mit dem angegebenen Präfix beginnen. Präfixe werden abgeglichen, als ob sie als Argumente für git-for-each-ref[1] angegeben wären. Um mehrere Präfixe aufzulisten, trennen Sie sie durch Leerzeichen. Wenn
core.alternateRefsCommandgesetzt ist, hat das Setzen voncore.alternateRefsPrefixeskeine Auswirkung. - core.bare
-
Wenn true, wird dieses Repository als *bare* (ohne Arbeitsverzeichnis) angenommen. Wenn dies der Fall ist, werden einige Befehle, die ein Arbeitsverzeichnis benötigen, deaktiviert, wie z.B. git-add[1] oder git-merge[1].
Diese Einstellung wird von git-clone[1] oder git-init[1] automatisch erraten, wenn das Repository erstellt wurde. Standardmäßig wird ein Repository, das auf "/.git" endet, als nicht bare (bare = false) angenommen, während alle anderen Repositorys als bare (bare = true) angenommen werden.
- core.worktree
-
Legt den Pfad zum Stammverzeichnis des Arbeitsbaums fest. Wenn die Umgebungsvariable
GIT_COMMON_DIRgesetzt ist, wird core.worktree ignoriert und nicht zur Bestimmung des Stammverzeichnisses des Arbeitsbaums verwendet. Dies kann durch die UmgebungsvariableGIT_WORK_TREEund die Befehlszeilenoption--work-treeüberschrieben werden. Der Wert kann ein absoluter Pfad oder relativ zum Pfad zum .git-Verzeichnis sein, der entweder durch --git-dir oder GIT_DIR angegeben oder automatisch ermittelt wird. Wenn --git-dir oder GIT_DIR angegeben ist, aber keine der Optionen --work-tree, GIT_WORK_TREE und core.worktree angegeben ist, wird das aktuelle Arbeitsverzeichnis als oberste Ebene Ihres Arbeitsbaums betrachtet.Beachten Sie, dass diese Variable auch dann berücksichtigt wird, wenn sie in einer Konfigurationsdatei in einem ".git"-Unterverzeichnis eines Verzeichnisses gesetzt ist und ihr Wert von dem letzteren Verzeichnis abweicht (z.B. hat "/path/to/.git/config" core.worktree auf "/different/path" gesetzt), was höchstwahrscheinlich eine Fehlkonfiguration ist. Das Ausführen von Git-Befehlen im Verzeichnis "/path/to" wird weiterhin "/different/path" als Stammverzeichnis des Arbeitsbaums verwenden und kann zu Verwirrung führen, es sei denn, Sie wissen, was Sie tun (z.B. Sie erstellen einen schreibgeschützten Snapshot desselben Index an einem anderen Ort als dem üblichen Arbeitsbaum des Repositorys).
- core.logAllRefUpdates
-
Aktiviert das Reflog. Aktualisierungen einer Referenz <ref> werden in die Datei "
$GIT_DIR/logs/<ref>" protokolliert, indem die neue und alte SHA-1, Datum/Uhrzeit und der Grund der Aktualisierung angehängt werden, aber nur, wenn die Datei existiert. Wenn diese Konfigurationsvariable auftruegesetzt ist, wird eine fehlende Datei "$GIT_DIR/logs/<ref>" automatisch für Branch-Köpfe (d.h. unterrefs/heads/), Remote-Referenzen (d.h. unterrefs/remotes/), Note-Referenzen (d.h. unterrefs/notes/) und die symbolische ReferenzHEADerstellt. Wenn sie aufalwaysgesetzt ist, wird eine fehlende Reflog automatisch für jede Referenz unterrefs/erstellt.Diese Informationen können verwendet werden, um festzustellen, welcher Commit vor "2 Tagen" die Spitze eines Branches war.
Dieser Wert ist standardmäßig true in einem Repository, das ein damit verbundenes Arbeitsverzeichnis hat, und standardmäßig false in einem Bare-Repository.
- core.repositoryFormatVersion
-
Interne Variable zur Identifizierung der Repository-Format- und Layoutversion. Siehe gitrepository-layout[5].
-
Wenn *group* (oder *true*), wird das Repository für mehrere Benutzer in einer Gruppe teilbar gemacht (wodurch sichergestellt wird, dass alle Dateien und Objekte gruppenbeschreibbar sind). Wenn *all* (oder *world* oder *everybody*), ist das Repository für alle Benutzer lesbar, zusätzlich zur Gruppenfreigabe. Wenn *umask* (oder *false*), verwendet Git die vom umask(2) gemeldeten Berechtigungen. Wenn *0xxx*, wobei *0xxx* eine oktale Zahl ist, haben Dateien im Repository diesen Moduswert. *0xxx* überschreibt den umask-Wert des Benutzers (während die anderen Optionen nur angeforderte Teile des umask-Werts des Benutzers überschreiben). Beispiele: *0660* macht das Repo für den Eigentümer und die Gruppe les- und schreibbar, aber für andere unzugänglich (entspricht *group*, es sei denn, umask ist z.B. *0022*). *0640* ist ein Repository, das für die Gruppe lesbar, aber nicht schreibbar ist. Siehe git-init[1]. Standardmäßig false.
- core.warnAmbiguousRefs
-
Wenn true, wird Git Sie warnen, wenn der von Ihnen übergebene Ref-Name mehrdeutig ist und mehrere Refs im Repository übereinstimmen könnte. Standardmäßig true.
- core.compression
-
Eine Ganzzahl -1..9, die eine Standard-Kompressionsebene angibt. -1 ist der zlib-Standard. 0 bedeutet keine Kompression, und 1..9 sind verschiedene Geschwindigkeits-/Größen-Trade-offs, wobei 9 die langsamste ist. Wenn gesetzt, liefert dies einen Standard für andere Kompressionsvariablen, wie z.B.
core.looseCompressionundpack.compression. - core.looseCompression
-
Eine Ganzzahl -1..9, die die Kompressionsebene für Objekte angibt, die sich nicht in einer Pack-Datei befinden. -1 ist der zlib-Standard. 0 bedeutet keine Kompression, und 1..9 sind verschiedene Geschwindigkeits-/Größen-Trade-offs, wobei 9 die langsamste ist. Wenn nicht gesetzt, wird standardmäßig core.compression verwendet. Wenn dieses nicht gesetzt ist, wird standardmäßig 1 (beste Geschwindigkeit) verwendet.
- core.packedGitWindowSize
-
Anzahl der Bytes einer Pack-Datei, die in einer einzigen Mapping-Operation in den Speicher gemappt werden. Größere Fenstergrößen können dazu führen, dass Ihr System eine kleinere Anzahl großer Pack-Dateien schneller verarbeitet. Kleinere Fenstergrößen beeinträchtigen die Leistung aufgrund erhöhter Aufrufe des Speichermanagers des Betriebssystems, können aber die Leistung beim Zugriff auf eine große Anzahl großer Pack-Dateien verbessern.
Standard ist 1 MiB, wenn NO_MMAP zur Kompilierzeit gesetzt war, ansonsten 32 MiB auf 32-Bit-Plattformen und 1 GiB auf 64-Bit-Plattformen. Dies sollte für alle Benutzer/Betriebssysteme angemessen sein. Sie müssen diesen Wert wahrscheinlich nicht anpassen.
Gängige Einheiten-Suffixe von *k*, *m* oder *g* werden unterstützt.
- core.packedGitLimit
-
Maximale Anzahl von Bytes, die gleichzeitig aus Pack-Dateien in den Speicher gemappt werden. Wenn Git mehr als diese Anzahl von Bytes gleichzeitig benötigt, um eine Operation abzuschließen, wird es vorhandene Regionen unmappen, um virtuellen Adressraum innerhalb des Prozesses freizugeben.
Standard ist 256 MiB auf 32-Bit-Plattformen und 32 TiB (effektiv unbegrenzt) auf 64-Bit-Plattformen. Dies sollte für alle Benutzer/Betriebssysteme angemessen sein, außer bei den größten Projekten. Sie müssen diesen Wert wahrscheinlich nicht anpassen.
Gängige Einheiten-Suffixe von *k*, *m* oder *g* werden unterstützt.
- core.deltaBaseCacheLimit
-
Maximale Anzahl von Bytes pro Thread, die für das Caching von Basisobjekten reserviert werden, auf die von mehreren deltatisierten Objekten verwiesen werden kann. Durch das Speichern der vollständig dekomprimierten Basisobjekte in einem Cache kann Git das mehrfache Entpacken und Dekomprimieren häufig verwendeter Basisobjekte vermeiden.
Standard ist 96 MiB auf allen Plattformen. Dies sollte für alle Benutzer/Betriebssysteme angemessen sein, außer bei den größten Projekten. Sie müssen diesen Wert wahrscheinlich nicht anpassen.
Gängige Einheiten-Suffixe von *k*, *m* oder *g* werden unterstützt.
- core.bigFileThreshold
-
Die Größe von Dateien, die als "groß" gelten, was, wie unten diskutiert, das Verhalten zahlreicher Git-Befehle ändert und auch, wie solche Dateien im Repository gespeichert werden. Der Standardwert ist 512 MiB. Gängige Einheiten-Suffixe von *k*, *m* oder *g* werden unterstützt.
Dateien oberhalb des konfigurierten Limits werden
-
Deflated in Packfiles gespeichert, ohne Delta-Kompression zu versuchen.
Das Standardlimit wird hauptsächlich mit diesem Anwendungsfall im Hinterkopf festgelegt. Damit werden die meisten Projekte ihren Quellcode und andere Textdateien delta-komprimiert, aber keine größeren binären Mediendateien.
Das Speichern großer Dateien ohne Delta-Kompression vermeidet übermäßigen Speicherverbrauch, auf Kosten eines geringfügig erhöhten Speicherbedarfs.
-
Als "binär" gekennzeichnet (siehe gitattributes[5]). z.B. git-log[1] und git-diff[1] berechnen keine Diffs für Dateien oberhalb dieses Limits.
-
Werden im Allgemeinen beim Schreiben gestreamt, was übermäßigen Speicherverbrauch vermeidet, auf Kosten eines gewissen festen Overheads. Befehle, die dies nutzen, sind git-archive[1], git-fast-import[1], git-index-pack[1], git-unpack-objects[1] und git-fsck[1].
-
- core.excludesFile
-
Gibt den Pfadnamen zur Datei an, die Muster für Pfade enthält, die nicht nachverfolgt werden sollen, zusätzlich zu
.gitignore(pro Verzeichnis) und.git/info/exclude. Standardmäßig$XDG_CONFIG_HOME/git/ignore. Wenn$XDG_CONFIG_HOMEweder gesetzt noch leer ist, wird stattdessen$HOME/.config/git/ignoreverwendet. Siehe gitignore[5]. - core.askPass
-
Einige Befehle (z.B. svn und http-Schnittstellen), die interaktiv nach einem Passwort fragen, können angewiesen werden, ein externes Programm zu verwenden, das über den Wert dieser Variablen angegeben wird. Kann durch die Umgebungsvariable
GIT_ASKPASSüberschrieben werden. Wenn nicht gesetzt, wird auf den Wert der UmgebungsvariableSSH_ASKPASSzurückgegriffen oder, falls dies fehlschlägt, auf eine einfache Passwortabfrage. Das externe Programm erhält eine geeignete Eingabeaufforderung als Kommandozeilenargument und schreibt das Passwort auf seine STDOUT. - core.attributesFile
-
Zusätzlich zu
.gitattributes(pro Verzeichnis) und.git/info/attributessucht Git in dieser Datei nach Attributen (siehe gitattributes[5]). Pfad-Erweiterungen erfolgen auf die gleiche Weise wie fürcore.excludesFile. Sein Standardwert ist$XDG_CONFIG_HOME/git/attributes. Wenn$XDG_CONFIG_HOMEweder gesetzt noch leer ist, wird stattdessen$HOME/.config/git/attributesverwendet. - core.hooksPath
-
Standardmäßig sucht Git nach Hooks im Verzeichnis
$GIT_DIR/hooks. Setzen Sie dies auf einen anderen Pfad, z.B./etc/git/hooks, und Git versucht, Ihre Hooks in diesem Verzeichnis zu finden, z.B./etc/git/hooks/pre-receiveanstelle von$GIT_DIR/hooks/pre-receive.Der Pfad kann absolut oder relativ sein. Ein relativer Pfad wird als relativ zum Verzeichnis interpretiert, in dem die Hooks ausgeführt werden (siehe den Abschnitt "BESCHREIBUNG" von githooks[5]).
Diese Konfigurationsvariable ist nützlich in Fällen, in denen Sie Ihre Git-Hooks zentral konfigurieren möchten, anstatt sie pro Repository zu konfigurieren, oder als flexiblere und zentralere Alternative zu einem
init.templateDir, in dem Sie Standard-Hooks geändert haben.Sie können auch alle Hooks vollständig deaktivieren, indem Sie
core.hooksPathauf/dev/nullsetzen. Dies ist normalerweise nur für fortgeschrittene Benutzer und pro Befehl unter Verwendung von Konfigurationsparametern der Formgit-ccore.hooksPath=/dev/null... ratsam. - core.editor
-
Befehle wie
commitundtag, die es Ihnen ermöglichen, Nachrichten durch Starten eines Editors zu bearbeiten, verwenden den Wert dieser Variablen, wenn sie gesetzt ist und die UmgebungsvariableGIT_EDITORnicht gesetzt ist. Siehe git-var[1]. - core.commentChar
- core.commentString
-
Befehle wie
commitundtag, die es Ihnen ermöglichen, Nachrichten zu bearbeiten, betrachten eine Zeile, die mit diesem Zeichen beginnt, als auskommentiert und entfernen sie, nachdem der Editor zurückkehrt (Standard *#*).Wenn auf "auto" gesetzt, wählt
git-commitein Zeichen aus, das nicht das Anfangszeichen einer Zeile in vorhandenen Commit-Nachrichten ist. Die Unterstützung für diesen Wert ist veraltet und wird in Git 3.0 entfernt, da die folgenden Einschränkungen bestehen:-
Es ist inkompatibel mit dem Hinzufügen von Kommentaren in einer Commit-Nachrichten-Vorlage. Dies schließt die Konfliktkommentare ein, die von
cherry-pick,merge,rebaseundrevertzur Commit-Nachricht hinzugefügt werden. -
Es ist inkompatibel mit dem Hinzufügen von Kommentaren zur Commit-Nachricht im Hook
prepare-commit-msg. -
Es ist inkompatibel mit den Befehlen
fixupundsquashbei der Rebase. -
Es wird von
gitnotesnicht beachtet.
Beachten Sie, dass diese beiden Variablen Aliase voneinander sind und in modernen Git-Versionen können Sie einen String (z.B.
//oder ⁑⁕⁑) mitcommentCharverwenden. Git-Versionen vor v2.45.0 ignorierencommentString, lehnen aber einen Wert fürcommentCharab, der mehr als ein einzelnes ASCII-Byte umfasst. Wenn Sie Ihre Konfiguration mit älteren und neueren Git-Versionen verwenden möchten, sollten Sie beide angeben.[core] # single character for older versions commentChar = "#" # string for newer versions (which will override commentChar # because it comes later in the file) commentString = "//"
-
- core.filesRefLockTimeout
-
Die Zeitdauer in Millisekunden, die wiederholt versucht wird, eine einzelne Referenz zu sperren. Wert 0 bedeutet, nicht wiederholt zu versuchen; -1 bedeutet, unbegrenzt zu versuchen. Standard ist 100 (d.h. 100 ms Wiederholungsversuch).
- core.packedRefsTimeout
-
Die Zeitdauer in Millisekunden, die wiederholt versucht wird, die Datei
packed-refszu sperren. Wert 0 bedeutet, nicht wiederholt zu versuchen; -1 bedeutet, unbegrenzt zu versuchen. Standard ist 1000 (d.h. 1 Sekunde Wiederholungsversuch). - core.pager
-
Text-Viewer, der von Git-Befehlen verwendet wird (z.B. *less*). Der Wert ist für die Interpretation durch die Shell bestimmt. Die Reihenfolge der Präferenz ist die Umgebungsvariable
$GIT_PAGER, dann die Konfigurationcore.pager, dann$PAGERund dann der bei der Kompilierung ausgewählte Standardwert (normalerweise *less*).Wenn die Umgebungsvariable
LESSnicht gesetzt ist, setzt Git sie aufFRX(wenn die UmgebungsvariableLESSgesetzt ist, ändert Git sie nicht). Wenn Sie Git's Standardeinstellung fürLESSselektiv überschreiben möchten, können Siecore.pagerz.B. aufless-Ssetzen. Dies wird von Git an die Shell übergeben, die den endgültigen Befehl inLESS=FRXless-Sübersetzt. Die Umgebung setzt die OptionSnicht, aber die Kommandozeile tut dies und weist less an, lange Zeilen abzuschneiden. Ebenso wird durch das Setzen voncore.pageraufless-+Fdie durch die Umgebung vorgegebene OptionFauf der Kommandozeile deaktiviert, was das Verhalten vonless"beenden, wenn ein Bildschirm" deaktiviert. Man kann für bestimmte Befehle spezielle Flags aktivieren: Zum Beispiel aktiviert das Setzen vonpager.blameaufless-Sdie Zeilenabschneidung nur fürgitblame.Ebenso, wenn die Umgebungsvariable
LVnicht gesetzt ist, setzt Git sie auf-c. Sie können diese Einstellung überschreiben, indem SieLVmit einem anderen Wert exportieren odercore.pagerauflv+csetzen. - core.whitespace
-
Eine durch Kommas getrennte Liste gängiger Whitespace-Probleme, auf die hingewiesen werden soll. *git diff* verwendet
color.diff.whitespace, um sie hervorzuheben, und *git apply --whitespace=error* betrachtet sie als Fehler. Sie können mit einem führenden - einige davon deaktivieren (z.B. *-trailing-space*).-
blank-at-eolbehandelt nachfolgende Leerzeichen am Ende der Zeile als Fehler (standardmäßig aktiviert). -
space-before-tabbehandelt ein Leerzeichen, das unmittelbar vor einem Tabulatorzeichen im anfänglichen Einzugsteil der Zeile erscheint, als Fehler (standardmäßig aktiviert). -
indent-with-non-tabbehandelt eine Zeile, die mit Leerzeichen anstelle der entsprechenden Tabs eingerückt ist, als Fehler (standardmäßig nicht aktiviert). -
tab-in-indentbehandelt ein Tabulatorzeichen im anfänglichen Einzugsteil der Zeile als Fehler (standardmäßig nicht aktiviert). -
blank-at-eofbehandelt leere Zeilen am Ende der Datei als Fehler (standardmäßig aktiviert). -
trailing-spaceist eine Kurzform fürblank-at-eolundblank-at-eof. -
cr-at-eolbehandelt einen Wagenrücklauf am Ende der Zeile als Teil des Zeilenabschlusses, d.h. mit ihm lösttrailing-spacenicht aus, wenn das Zeichen vor einem solchen Wagenrücklauf kein Whitespace ist (standardmäßig nicht aktiviert). -
tabwidth=<n> gibt an, wie viele Zeichenpositionen ein Tabulator einnimmt; dies ist relevant fürindent-with-non-tabund wenn Git Fehler vom Typtab-in-indentbehebt. Die Standard-Tabulatorbreite ist 8. Zulässige Werte sind 1 bis 63.
-
- core.fsync
-
Eine durch Kommas getrennte Liste von Komponenten des Repositorys, die beim Erstellen oder Ändern über core.fsyncMethod gehärtet werden sollen. Sie können die Härtung von Komponenten durch Voranstellen eines - deaktivieren. Nicht gehärtete Elemente können im Falle einer unsauberen Systemabschaltung verloren gehen. Sofern Sie keine speziellen Anforderungen haben, wird empfohlen, diese Option leer zu lassen oder eine der Optionen
committed,addedoderallzu wählen.Wenn diese Konfiguration angetroffen wird, beginnt die Menge der Komponenten mit dem plattformspezifischen Standardwert, deaktivierte Komponenten werden entfernt und zusätzliche Komponenten hinzugefügt.
nonesetzt den Zustand zurück, so dass der plattformspezifische Standardwert ignoriert wird.Der leere String setzt die fsync-Konfiguration auf den plattformspezifischen Standard zurück. Der Standardwert auf den meisten Plattformen entspricht
core.fsync=committed,-loose-object, was eine gute Leistung bietet, aber im Falle einer unsauberen Systemabschaltung zu Datenverlusten führen kann.-
nonelöscht die Menge der fsynced Komponenten. -
loose-objecthärtet lose Objekte, die dem Repository hinzugefügt werden. -
packhärtet Objekte, die dem Repository in Packfile-Form hinzugefügt werden. -
pack-metadatahärtet Packfile-Bitmaps und Indizes. -
commit-graphhärtet die Commit-Graph-Datei. -
indexhärtet den Index, wenn er modifiziert wird. -
objectsist eine aggregierte Option, dieloose-object,packentspricht. -
referencehärtet Referenzen, die im Repository modifiziert wurden. -
derived-metadataist eine aggregierte Option, diepack-metadata,commit-graphentspricht. -
committedist eine aggregierte Option, die derzeitobjectsentspricht. Dieser Modus opfert etwas Leistung, um sicherzustellen, dass mitgitcommitoder ähnlichen Befehlen im Repository committete Arbeit gehärtet wird. -
addedist eine aggregierte Option, die derzeitcommitted,indexentspricht. Dieser Modus opfert zusätzliche Leistung, um sicherzustellen, dass die Ergebnisse von Befehlen wiegitaddund ähnlichen Operationen gehärtet werden. -
allist eine aggregierte Option, die alle einzelnen Komponenten oben synchronisiert.
-
- core.fsyncMethod
-
Ein Wert, der die Strategie angibt, die Git zum Härten von Repository-Daten mithilfe von fsync und verwandten Primitiven verwendet.
-
fsyncverwendet den fsync()-Systemaufruf oder plattformspezifische Äquivalente. -
writeout-onlysendet Pagecache-Writeback-Anforderungen, aber je nach Dateisystem und Speicherhardware können Daten, die dem Repository hinzugefügt werden, im Falle eines Systemabsturzes nicht dauerhaft sein. Dies ist der Standardmodus unter macOS. -
batchaktiviert einen Modus, der Writeout-Only-Flushes verwendet, um mehrere Updates im Disk-Writeback-Cache zu speichern und dann einen einzigen vollständigen fsync einer Dummy-Datei durchführt, um den Disk-Cache-Flush am Ende der Operation auszulösen.Derzeit gilt der *batch*-Modus nur für lose Objektdateien. Andere Repository-Daten werden haltbar gemacht, als ob
fsyncangegeben worden wäre. Es wird erwartet, dass dieser Modus auf macOS für auf HFS+ oder APFS-Dateisystemen gespeicherte Repos und unter Windows für auf NTFS- oder ReFS-Dateisystemen gespeicherte Repos genauso sicher ist wiefsync.
-
- core.fsyncObjectFiles
-
Dieses Boolean aktiviert fsync() beim Schreiben von Objektdateien. Diese Einstellung ist veraltet. Verwenden Sie stattdessen core.fsync.
Diese Einstellung betrifft Daten, die im losen Objektformat zum Git-Repository hinzugefügt werden. Wenn auf true gesetzt, wird Git einen fsync- oder ähnlichen Systemaufruf ausgeben, um Caches zu leeren, damit lose Objekte bei einem unsauberen System-Shutdown konsistent bleiben.
- core.preloadIndex
-
Paralleles Vorladen des Index für Operationen wie git diff aktivieren
Dies kann Operationen wie git diff und git status beschleunigen, insbesondere auf Dateisystemen wie NFS, die schwache Caching-Semantik und damit relativ hohe IO-Latenzen aufweisen. Wenn aktiviert, wird Git den Indexvergleich mit den Dateisystemdaten parallel durchführen, was überlappende IOs ermöglicht. Standard ist true.
- core.unsetenvvars
-
Nur Windows: Kommagetrennte Liste von Umgebungsvariablennamen, die vor dem Starten eines anderen Prozesses unset werden müssen. Standard ist
PERL5LIB, um der Tatsache Rechnung zu tragen, dass Git für Windows auf seinem eigenen Perl-Interpreter besteht. - core.createObject
-
Sie können dies auf link setzen, in diesem Fall werden ein Hardlink gefolgt von einem Löschen der Quelle verwendet, um sicherzustellen, dass die Objekterstellung keine vorhandenen Objekte überschreibt.
Auf einigen Dateisystem-/Betriebssystemkombinationen ist dies unzuverlässig. Setzen Sie diese Konfigurationseinstellung dort auf rename; dies entfernt jedoch die Prüfung, die sicherstellt, dass vorhandene Objektdateien nicht überschrieben werden.
- core.notesRef
-
Beim Anzeigen von Commit-Nachrichten werden auch Notizen angezeigt, die in der angegebenen Referenz gespeichert sind. Die Referenz muss vollständig qualifiziert sein. Wenn die angegebene Referenz nicht existiert, ist dies kein Fehler, sondern bedeutet, dass keine Notizen gedruckt werden sollen.
Diese Einstellung ist standardmäßig auf "refs/notes/commits" gesetzt und kann durch die Umgebungsvariable
GIT_NOTES_REFüberschrieben werden. Siehe git-notes[1]. - core.commitGraph
-
Wenn true, liest Git die Commit-Graph-Datei (falls vorhanden), um die Graphstruktur von Commits zu parsen. Standard ist true. Weitere Informationen finden Sie unter git-commit-graph[1].
- core.useReplaceRefs
-
Wenn auf
falsegesetzt, verhält es sich so, als ob die Option--no-replace-objectsauf der Kommandozeile angegeben wurde. Weitere Informationen finden Sie unter git[1] und git-replace[1]. - core.multiPackIndex
-
Verwendet die Multi-Pack-Index-Datei, um mehrere Packfiles mit einem einzigen Index zu verfolgen. Weitere Informationen finden Sie unter git-multi-pack-index[1]. Standard ist true.
- core.sparseCheckout
-
Aktiviert die "Sparse Checkout"-Funktion. Weitere Informationen finden Sie unter git-sparse-checkout[1].
- core.sparseCheckoutCone
-
Aktiviert den "Cone-Modus" der Sparse Checkout-Funktion. Wenn die Sparse Checkout-Datei eine begrenzte Anzahl von Mustern enthält, bietet dieser Modus erhebliche Leistungsvorteile. Der "Non-Cone-Modus" kann angefordert werden, um flexiblere Muster zu ermöglichen, indem diese Variable auf false gesetzt wird. Weitere Informationen finden Sie unter git-sparse-checkout[1].
- core.abbrev
-
Legt die Länge fest, auf die Objektnamen abgekürzt werden. Wenn nicht angegeben oder auf "auto" gesetzt, wird ein geeigneter Wert basierend auf der ungefähren Anzahl der gepackten Objekte in Ihrem Repository berechnet, was hoffentlich ausreicht, damit abgekürzte Objektnamen für eine gewisse Zeit eindeutig bleiben. Wenn auf "no" gesetzt, erfolgt keine Abkürzung und die Objektnamen werden in voller Länge angezeigt. Die Mindestlänge ist 4.
- core.maxTreeDepth
-
Die maximale Tiefe, die Git beim Durchlaufen eines Baumes rekursiv vorgeht (z. B. "a/b/cde/f" hat eine Tiefe von 4). Dies ist eine Notfallmaßnahme, damit Git sauber abbrechen kann, und muss im Allgemeinen nicht angepasst werden. Wenn Git mit MSVC kompiliert wird, beträgt der Standardwert 512. Andernfalls beträgt der Standardwert 2048.
- credential.helper
-
Gibt einen externen Helfer an, der aufgerufen wird, wenn ein Benutzername oder ein Passwort benötigt wird; der Helfer kann externe Speicher konsultieren, um die Eingabe von Anmeldeinformationen durch den Benutzer zu vermeiden. Dies ist normalerweise der Name eines Anmeldeinformationshelfers mit möglichen Argumenten, kann aber auch ein absoluter Pfad mit Argumenten sein oder, wenn er mit
!eingeleitet wird, Shell-Befehle.Beachten Sie, dass mehrere Helfer definiert sein können. Siehe gitcredentials[7] für Details und Beispiele.
- credential.interactive
-
Standardmäßig fragen Git und alle konfigurierten Anmeldeinformationshelfer nach Benutzereingaben, wenn neue Anmeldeinformationen benötigt werden. Viele dieser Helfer werden aufgrund gespeicherter Anmeldeinformationen erfolgreich sein, wenn diese Anmeldeinformationen noch gültig sind. Um die Möglichkeit der Benutzerinteraktivität durch Git zu vermeiden, setzen Sie
credential.interactive=false. Einige Anmeldeinformationshelfer berücksichtigen diese Option ebenfalls. - credential.useHttpPath
-
Bei der Abfrage von Anmeldeinformationen wird die "Pfad"-Komponente einer http- oder https-URL als wichtig betrachtet. Standard ist false. Weitere Informationen finden Sie unter gitcredentials[7].
- credential.sanitizePrompt
-
Standardmäßig dürfen Benutzernamen und Hosts, die als Teil der Passwortabfrage angezeigt werden, keine Steuerzeichen enthalten (sie werden standardmäßig URL-kodiert). Konfigurieren Sie diese Einstellung auf
false, um dieses Verhalten zu überschreiben. - credential.protectProtocol
-
Standardmäßig sind Wagenrücklaufzeichen im Protokoll nicht erlaubt, das verwendet wird, wenn Git mit einem Anmeldeinformationshelfer kommuniziert. Diese Einstellung ermöglicht es Benutzern, diesen Standard zu überschreiben.
- credential.username
-
Wenn für eine Netzwerauthentifizierung kein Benutzername festgelegt ist, wird dieser Benutzername standardmäßig verwendet. Siehe credential.<context>.* unten und gitcredentials[7].
- credential.<url>.*
-
Jede der credential.* Optionen oben kann selektiv auf einige Anmeldeinformationen angewendet werden. Zum Beispiel würde "credential.https://example.com.username" den Standardbenutzernamen nur für https-Verbindungen zu example.com festlegen. Siehe gitcredentials[7] für Details, wie URLs abgeglichen werden.
- credentialCache.ignoreSIGHUP
-
Weist den Daemon von git-credential-cache an, SIGHUP zu ignorieren, anstatt zu beenden.
- credentialStore.lockTimeoutMS
-
Die Zeitdauer in Millisekunden, die git-credential-store bei dem Versuch, die Anmeldeinformationsdatei zu sperren, wiederholt. Ein Wert von 0 bedeutet kein Wiederholungsversuch; -1 bedeutet unbegrenzte Versuche. Standard ist 1000 (d. h. Wiederholung für 1 Sekunde).
diff.autoRefreshIndex-
Wenn
git diffverwendet wird, um Vergleiche mit Arbeitsbaumdateien durchzuführen, werden reine Statusänderungen nicht als geändert betrachtet. Stattdessen wirdgit update-index --refreshstillschweigend ausgeführt, um die Statusinformationen für Pfade zu aktualisieren, deren Inhalte im Arbeitsbaum mit den Inhalten im Index übereinstimmen. Diese Option ist standardmäßigtrue. Beachten Sie, dass dies nurgit diffPorcelain betrifft und nicht Low-Level-diff-Befehle wiegit diff-files. diff.dirstat-
Eine kommagetrennte Liste von
--dirstat-Parametern, die das Standardverhalten der Option--dirstatfür git-diff[1] und ähnliche Befehle angibt. Die Standardwerte können auf der Kommandozeile überschrieben werden (mit--dirstat=<param>,...). Die Fallback-Standardwerte (wenn nicht durchdiff.dirstatgeändert) sindchanges,noncumulative,3. Die folgenden Parameter sind verfügbarchanges-
Berechnet die Dirstat-Zahlen durch Zählen der aus der Quelle entfernten oder in das Ziel hinzugefügten Zeilen. Dies ignoriert den Umfang reiner Codebewegungen innerhalb einer Datei. Mit anderen Worten, das Neuordnen von Zeilen in einer Datei wird nicht so stark gezählt wie andere Änderungen. Dies ist das Standardverhalten, wenn kein Parameter angegeben wird.
lines-
Berechnet die Dirstat-Zahlen, indem die reguläre zeilenbasierte Diff-Analyse durchgeführt und die Anzahl der entfernten/hinzugefügten Zeilen summiert wird. (Für Binärdateien werden stattdessen 64-Byte-Chunks gezählt, da Binärdateien kein natürliches Konzept von Zeilen haben.) Dies ist ein teureres
--dirstat-Verhalten als daschanges-Verhalten, zählt aber auch neu angeordnete Zeilen innerhalb einer Datei ebenso wie andere Änderungen. Die resultierende Ausgabe stimmt mit dem überein, was Sie von den anderen--*stat-Optionen erhalten. files-
Berechnet die Dirstat-Zahlen durch Zählen der Anzahl der geänderten Dateien. Jede geänderte Datei zählt gleichmäßig in der Dirstat-Analyse. Dies ist das rechnerisch günstigste
--dirstat-Verhalten, da es den Dateiinhalt überhaupt nicht berücksichtigen muss. cumulative-
Zählt die Änderungen in einem Unterverzeichnis auch für das übergeordnete Verzeichnis. Beachten Sie, dass bei Verwendung von
cumulativedie Summe der angezeigten Prozentsätze 100 % überschreiten kann. Das Standardverhalten (nicht kumulativ) kann mit dem Parameternoncumulativeangegeben werden. - <limit>
-
Ein Integer-Parameter gibt einen Schwellenwertprozentsatz an (standardmäßig 3 %). Verzeichnisse, die weniger als dieser Prozentsatz der Änderungen beitragen, werden nicht in der Ausgabe angezeigt.
Beispiel: Das Folgende zählt geänderte Dateien, ignoriert aber Verzeichnisse mit weniger als 10 % der gesamten geänderten Dateien und akkumuliert Unterverzeichnisanzahlen in den übergeordneten Verzeichnissen:
files,10,cumulative. diff.statNameWidth-
Begrenzt die Breite des Dateinamens im
--stat-Output. Wenn gesetzt, gilt dies für alle Befehle, die--stat-Output generieren, außerformat-patch. diff.statGraphWidth-
Begrenzt die Breite des Graphenteils im
--stat-Output. Wenn gesetzt, gilt dies für alle Befehle, die--stat-Output generieren, außerformat-patch. diff.context-
Generiert Diffs mit <n> Zeilen Kontext anstelle des Standardwerts von 3. Dieser Wert wird durch die Option
-Uüberschrieben. diff.interHunkContext-
Zeigt den Kontext zwischen Diff-Hunks bis zur angegebenen Anzahl von Zeilen an und verschmilzt dadurch nahe beieinander liegende Hunks. Dieser Wert dient als Standard für die Kommandozeilenoption
--inter-hunk-context. diff.external-
Wenn diese Konfigurationsvariable gesetzt ist, wird die Diff-Generierung nicht mit der internen Diff-Maschine durchgeführt, sondern mit dem angegebenen Befehl. Kann mit der Umgebungsvariable
GIT_EXTERNAL_DIFFüberschrieben werden. Der Befehl wird mit Parametern aufgerufen, wie unter "git Diffs" in git[1] beschrieben. Hinweis: Wenn Sie ein externes Diff-Programm nur für eine Teilmenge Ihrer Dateien verwenden möchten, sollten Sie stattdessen gitattributes[5] verwenden. diff.trustExitCode-
Wenn dieser boolesche Wert auf
truegesetzt ist, wird erwartet, dass der Befehldiff.externalden Exit-Code 0 zurückgibt, wenn er die Eingabedateien als gleich betrachtet, oder 1, wenn er sie als unterschiedlich betrachtet, wiediff(1). Wenn er auffalsegesetzt ist, was der Standard ist, wird erwartet, dass der Befehl unabhängig von der Gleichheit den Exit-Code0zurückgibt. Jeder andere Exit-Code führt dazu, dass Git einen fatalen Fehler meldet. diff.ignoreSubmodules-
Legt den Standardwert für
--ignore-submodulesfest. Beachten Sie, dass dies nurgit diffPorcelain betrifft und nicht Low-Level-diff-Befehle wiegit diff-files.git checkoutundgit switchberücksichtigen diese Einstellung ebenfalls, wenn sie nicht committete Änderungen melden. Wenn sie aufallgesetzt ist, wird die Submodulübersicht, die normalerweise vongit commitundgit statusangezeigt wird, wennstatus.submoduleSummarygesetzt ist, deaktiviert, es sei denn, sie wird durch die Verwendung der Kommandozeilenoption--ignore-submodulesüberschrieben. Diegit submodule-Befehle sind von dieser Einstellung nicht betroffen. Standardmäßig ist dies auf untracked gesetzt, sodass alle nicht nachverfolgten Submodule ignoriert werden. diff.mnemonicPrefix-
Wenn gesetzt, verwendet
git diffein Präfixpaar, das sich vom Standarda/undb/unterscheidet, abhängig davon, was verglichen wird. Wenn diese Konfiguration aktiv ist, tauscht die Ausgabe von Reverse-Diffs auch die Reihenfolge der Präfixe.git diff-
vergleicht den (i)ndex und den (w)ork tree;
git diff HEAD-
vergleicht einen (c)ommit und den (w)ork tree;
git diff --cached-
vergleicht einen (c)ommit und den (i)ndex;
git diff HEAD:<file1> <file2>-
vergleicht ein (o)bjekt und eine (w)ork tree-Entität;
git diff --no-index <a> <b>-
vergleicht zwei Nicht-Git-Dinge <a> und <b>.
diff.noPrefix-
Wenn gesetzt, zeigt
git diffkein Quell- oder Zielpräfix an. diff.srcPrefix-
Wenn gesetzt, verwendet
git diffdieses Quellpräfix. Standard ista/. diff.dstPrefix-
Wenn gesetzt, verwendet
git diffdieses Zielpräfix. Standard istb/. diff.relative-
Wenn auf
truegesetzt, zeigtgit diffkeine Änderungen außerhalb des Verzeichnisses an und zeigt Pfadnamen relativ zum aktuellen Verzeichnis an. diff.orderFile-
Datei, die angibt, wie Dateien innerhalb eines Diffs geordnet werden sollen. Siehe die Option
-Ofür git-diff[1] für Details. Wenndiff.orderFileein relativer Pfadname ist, wird er relativ zum Stamm des Arbeitsverzeichnisses behandelt. diff.renameLimit-
Die Anzahl der Dateien, die im exklusiven Teil der Kopier-/Umbenennungserkennung berücksichtigt werden; entspricht der Option
git diff-l. Wenn nicht gesetzt, beträgt der Standardwert derzeit 1000. Diese Einstellung hat keine Auswirkung, wenn die Umbenennungserkennung deaktiviert ist. diff.renames-
Ob und wie Git Umbenennungen erkennt. Wenn auf
falsegesetzt, ist die Umbenennungserkennung deaktiviert. Wenn auftruegesetzt, ist die grundlegende Umbenennungserkennung aktiviert. Wenn aufcopiesodercopygesetzt, erkennt Git auch Kopien. Standard isttrue. Beachten Sie, dass dies nurgit diffPorcelain wie git-diff[1] und git-log[1] betrifft und nicht Low-Level-Befehle wie git-diff-files[1]. diff.suppressBlankEmpty-
Ein boolescher Wert, der das Standardverhalten unterdrückt, eine Leerstelle vor jeder leeren Ausgabespur zu drucken. Standard ist
false. diff.submodule-
Gibt das Format an, in dem Unterschiede bei Submodulen angezeigt werden. Das
short-Format zeigt nur die Namen der Commits am Anfang und Ende des Bereichs an. Daslog-Format listet die Commits im Bereich auf, wiegit-submodulesummary. Dasdiff-Format zeigt einen Inline-Diff der geänderten Inhalte des Submoduls. Standard istshort. diff.wordRegex-
Ein POSIX Extended Regular Expression, das verwendet wird, um zu bestimmen, was ein "Wort" ist, wenn Wort-für-Wort-Differenzberechnungen durchgeführt werden. Zeichensequenzen, die dem regulären Ausdruck entsprechen, sind "Wörter", alle anderen Zeichen sind zu ignorierende Leerzeichen.
diff.<driver>.command-
Der benutzerdefinierte Diff-Treiberbefehl. Siehe gitattributes[5] für Details.
diff.<driver>.trustExitCode-
Wenn dieser boolesche Wert auf
truegesetzt ist, wird erwartet, dass der Befehldiff.<driver>.commandden Exit-Code 0 zurückgibt, wenn er die Eingabedateien als gleich betrachtet, oder 1, wenn er sie als unterschiedlich betrachtet, wiediff(1). Wenn er auffalsegesetzt ist, was der Standard ist, wird erwartet, dass der Befehl unabhängig von der Gleichheit den Exit-Code 0 zurückgibt. Jeder andere Exit-Code führt dazu, dass Git einen fatalen Fehler meldet. diff.<driver>.xfuncname-
Der reguläre Ausdruck, den der Diff-Treiber verwenden sollte, um den Hunk-Header zu erkennen. Ein integriertes Muster kann ebenfalls verwendet werden. Siehe gitattributes[5] für Details.
diff.<driver>.binary-
Setzen Sie diese Option auf
true, damit der Diff-Treiber Dateien als binär behandelt. Siehe gitattributes[5] für Details. diff.<driver>.textconv-
Der Befehl, den der Diff-Treiber aufrufen sollte, um die textkonvertierte Version einer Datei zu generieren. Das Ergebnis der Konvertierung wird verwendet, um einen lesbaren Diff zu generieren. Siehe gitattributes[5] für Details.
diff.<driver>.wordRegex-
Der reguläre Ausdruck, den der Diff-Treiber verwenden sollte, um Wörter in einer Zeile zu trennen. Siehe gitattributes[5] für Details.
diff.<driver>.cachetextconv-
Setzen Sie diese Option auf
true, damit der Diff-Treiber die Textkonvertierungsergebnisse cacht. Siehe gitattributes[5] für Details. diff.indentHeuristic-
Setzen Sie diese Option auf
false, um die Standardheuristiken zu deaktivieren, die Diff-Hunk-Grenzen verschieben, um Patches besser lesbar zu machen. diff.algorithm-
Wählt einen Diff-Algorithmus aus. Die Varianten sind wie folgt:
defaultmyers-
Der grundlegende Greedy-Diff-Algorithmus. Derzeit ist dies der Standard.
minimal-
Verwendet zusätzliche Zeit, um sicherzustellen, dass der kleinstmögliche Diff erzeugt wird.
patience-
Verwendet den "Patience Diff"-Algorithmus bei der Generierung von Patches.
histogram-
Dieser Algorithmus erweitert den Patience-Algorithmus, um "gemeinsame Elemente mit geringer Häufigkeit" zu unterstützen.
diff.wsErrorHighlight-
Hebt Leerzeichenfehler in den Zeilen
context,oldodernewdes Diffs hervor. Mehrere Werte werden durch Kommas getrennt,nonesetzt vorherige Werte zurück,defaultsetzt die Liste aufnewzurück undallist eine Kurzform fürold,new,context. Die Leerzeichenfehler werden mitcolor.diff.whitespaceeingefärbt. Die Kommandozeilenoption--ws-error-highlight=<kind>überschreibt diese Einstellung. diff.colorMoved-
Wenn auf einen gültigen <mode> oder einen
true-Wert gesetzt, werden verschobene Zeilen in einem Diff unterschiedlich eingefärbt. Details zu gültigen Modi finden Sie unter--color-movedin git-diff[1]. Wenn einfach auftruegesetzt, wird der Standard-Farbmodus verwendet. Wenn auffalsegesetzt, werden verschobene Zeilen nicht eingefärbt. diff.colorMovedWS-
Wenn verschobene Zeilen eingefärbt werden (z. B. mit der Einstellung
diff.colorMoved), steuert diese Option den Modus, wie Leerzeichen behandelt werden. Details zu gültigen Modi finden Sie unter--color-moved-wsin git-diff[1]. - diff.tool
-
Steuert, welcher Diff-Tool von git-difftool[1] verwendet wird. Diese Variable überschreibt den in
merge.toolkonfigurierten Wert. Die folgende Liste zeigt die gültigen integrierten Werte. Jeder andere Wert wird als benutzerdefiniertes Diff-Tool behandelt und erfordert, dass eine entsprechende difftool.<tool>.cmd-Variable definiert ist. - diff.guitool
-
Steuert, welches Diff-Tool von git-difftool[1] verwendet wird, wenn die Option -g/--gui angegeben wird. Diese Variable überschreibt den in
merge.guitoolkonfigurierten Wert. Die folgende Liste zeigt die gültigen integrierten Werte. Jeder andere Wert wird als benutzerdefiniertes Diff-Tool behandelt und erfordert, dass eine entsprechende difftool.<guitool>.cmd-Variable definiert ist.-
araxis
-
bc
-
codecompare
-
deltawalker
-
diffmerge
-
diffuse
-
ecmerge
-
emerge
-
examdiff
-
guiffy
-
gvimdiff
-
kdiff3
-
kompare
-
meld
-
nvimdiff
-
opendiff
-
p4merge
-
smerge
-
tkdiff
-
vimdiff
-
vscode
-
winmerge
-
xxdiff
-
- difftool.<tool>.cmd
-
Gibt den Befehl zur Ausführung des angegebenen Diff-Tools an. Der angegebene Befehl wird in der Shell mit den folgenden verfügbaren Variablen ausgewertet: LOCAL wird auf den Namen der temporären Datei gesetzt, die den Inhalt des Diff-Pre-Images enthält, und REMOTE wird auf den Namen der temporären Datei gesetzt, die den Inhalt des Diff-Post-Images enthält.
Siehe die Option
--tool=<tool>in git-difftool[1] für weitere Details. - difftool.<tool>.path
-
Überschreibt den Pfad für das gegebene Tool. Dies ist nützlich, falls Ihr Tool nicht im PATH enthalten ist.
- difftool.trustExitCode
-
Beendet difftool, wenn das aufgerufene Diff-Tool einen von Null verschiedenen Exit-Status zurückgibt.
Siehe die Option
--trust-exit-codein git-difftool[1] für weitere Details. - difftool.prompt
-
Fordert zur Bestätigung vor jeder Ausführung des Diff-Tools auf.
- difftool.guiDefault
-
Setzen Sie auf
true, umdiff.guitoolstandardmäßig zu verwenden (entspricht der Angabe des Arguments--gui), oderauto, umdiff.guitooloderdiff.toolauszuwählen, je nachdem, ob eineDISPLAY-Umgebungsvariable vorhanden ist. Der Standard istfalse, wobei das Argument--guiexplizit angegeben werden muss, damitdiff.guitoolverwendet wird. - extensions.*
-
Sofern nicht anders angegeben, ist es ein Fehler, eine Erweiterung anzugeben, wenn
core.repositoryFormatVersionnicht1ist. Siehe gitrepository-layout[5].- compatObjectFormat
-
Gibt einen kompatiblen Hash-Algorithmus an, der verwendet werden soll. Die akzeptablen Werte sind
sha1undsha256. Der angegebene Wert muss sich von dem Wert vonextensions.objectFormatunterscheiden. Dies ermöglicht die Client-seitige Interoperabilität zwischen Git-Repositories, deren ObjectFormat mit diesem compatObjectFormat übereinstimmt. Insbesondere, wenn vollständig implementiert, werden Pushes und Pulls von einem Repository, dessen ObjectFormat mit compatObjectFormat übereinstimmt, unterstützt. Außerdem können OIDs, die in compatObjectFormat kodiert sind, zusätzlich zu OIDs, die mit objectFormat kodiert sind, verwendet werden, um lokal Objekte anzugeben.Beachten Sie, dass die Funktionalität, die durch diese Erweiterung aktiviert wird, unvollständig ist und Änderungen unterworfen ist. Sie existiert derzeit nur, um die Entwicklung und das Testen der zugrunde liegenden Funktion zu ermöglichen, und ist nicht für Endbenutzer konzipiert.
- noop
-
Diese Erweiterung ändert das Verhalten von Git überhaupt nicht. Sie ist nur zum Testen der Format-1-Kompatibilität nützlich.
Aus historischen Gründen wird diese Erweiterung unabhängig von der Einstellung
core.repositoryFormatVersionberücksichtigt. - noop-v1
-
Diese Erweiterung ändert das Verhalten von Git überhaupt nicht. Sie ist nur zum Testen der Format-1-Kompatibilität nützlich.
- objectFormat
-
Gibt den zu verwendenden Hash-Algorithmus an. Die akzeptablen Werte sind
sha1undsha256. Wenn nicht angegeben, wirdsha1angenommen.Beachten Sie, dass diese Einstellung nur von git-init[1] oder git-clone[1] gesetzt werden sollte. Ein Versuch, sie nach der Initialisierung zu ändern, wird nicht funktionieren und zu schwer zu diagnostizierenden Problemen führen.
- partialClone
-
Wenn aktiviert, zeigt dies an, dass das Repository mit einem teilweisen Klon erstellt wurde (oder später einen teilweisen Fetch durchgeführt hat) und dass die Remote bestimmte unerwünschte Objekte weggelassen haben könnte. Eine solche Remote wird als "Promisor Remote" bezeichnet und verspricht, dass alle solchen weggelassenen Objekte zukünftig von ihr abgerufen werden können.
Der Wert dieses Schlüssels ist der Name der Promisor Remote.
Aus historischen Gründen wird diese Erweiterung unabhängig von der Einstellung
core.repositoryFormatVersionberücksichtigt. - preciousObjects
-
Wenn aktiviert, zeigt dies an, dass Objekte im Repository NICHT gelöscht werden dürfen (z. B. durch
git-pruneodergit repack -d).Aus historischen Gründen wird diese Erweiterung unabhängig von der Einstellung
core.repositoryFormatVersionberücksichtigt. - refStorage
-
Gibt das zu verwendende Ref-Speicherformat an. Die akzeptablen Werte sind
-
filesfür lose Dateien mit "packed-refs". Dies ist der Standardwert. -
reftablefür das Reftable-Format. Dieses Format ist experimentell und seine Interna können sich ändern.
Beachten Sie, dass diese Einstellung nur von git-init[1] oder git-clone[1] gesetzt werden sollte. Ein Versuch, sie nach der Initialisierung zu ändern, wird nicht funktionieren und zu schwer zu diagnostizierenden Problemen führen.
-
- relativeWorktrees
-
Wenn aktiviert, zeigt dies an, dass mindestens ein Arbeitsbaum mit relativen Pfaden verknüpft wurde. Wird automatisch gesetzt, wenn ein Arbeitsbaum mit der Option
--relative-pathsoder mit der auftruegesetzten Konfigurationworktree.useRelativePathserstellt oder repariert wurde. - worktreeConfig
-
Wenn aktiviert, laden Arbeitsbäume Konfigurationseinstellungen aus der Datei
$GIT_DIR/config.worktreezusätzlich zur Datei$GIT_COMMON_DIR/config. Beachten Sie, dass$GIT_COMMON_DIRund$GIT_DIRfür den Hauptarbeitsbaum identisch sind, während andere Arbeitsbäume$GIT_DIRgleich$GIT_COMMON_DIR/worktrees/<id>/haben. Die Einstellungen in der Dateiconfig.worktreeüberschreiben die Einstellungen aus anderen Konfigurationsdateien.Beim Aktivieren dieser Erweiterung müssen Sie darauf achten, bestimmte Werte aus der gemeinsamen Konfigurationsdatei in die
config.worktree-Datei des Hauptarbeitsbaums zu verschieben, falls vorhanden-
core.worktreemuss von$GIT_COMMON_DIR/confignach$GIT_COMMON_DIR/config.worktreeverschoben werden. -
Wenn
core.baretrue ist, muss es von$GIT_COMMON_DIR/confignach$GIT_COMMON_DIR/config.worktreeverschoben werden.
Es kann auch vorteilhaft sein, die Speicherorte von
core.sparseCheckoutundcore.sparseCheckoutConeanzupassen, je nachdem, wie stark Sie die Sparse-Checkout-Einstellungen für jeden Arbeitsbaum anpassen möchten. Standardmäßig aktiviert der integrierte Befehlgit sparse-checkoutdiese Erweiterung, weist diese Konfigurationswerte pro Arbeitsbaum zu und verwendet die Datei$GIT_DIR/info/sparse-checkout, um die Sparsity für jeden Arbeitsbaum unabhängig voneinander anzugeben. Siehe git-sparse-checkout[1] für weitere Details.Aus historischen Gründen wird diese Erweiterung unabhängig von der Einstellung
core.repositoryFormatVersionberücksichtigt. -
- fastimport.unpackLimit
-
Wenn die Anzahl der von git-fast-import[1] importierten Objekte unter diesem Limit liegt, werden die Objekte in lose Objektdateien entpackt. Wenn jedoch die Anzahl der importierten Objekte dieses Limit erreicht oder überschreitet, wird das Pack als Pack gespeichert. Das Speichern des Packs aus einem Fast-Import kann den Importvorgang beschleunigen, insbesondere auf langsamen Dateisystemen. Wenn nicht gesetzt, wird stattdessen der Wert von
transfer.unpackLimitverwendet. - feature.*
-
Die Konfigurationseinstellungen, die mit
feature.beginnen, modifizieren die Standardwerte einer Gruppe anderer Konfigurationseinstellungen. Diese Gruppen werden von der Git-Entwickler-Community als empfohlene Standardwerte erstellt und können sich ändern. Insbesondere können neue Konfigurationsoptionen mit anderen Standardwerten hinzugefügt werden. - feature.experimental
-
Aktiviert Konfigurationsoptionen, die neu in Git sind und für zukünftige Standardwerte in Betracht gezogen werden. Hierin enthaltene Konfigurationseinstellungen können mit jeder Veröffentlichung, einschließlich kleiner Versionsupdates, hinzugefügt oder entfernt werden. Diese Einstellungen können aufgrund ihrer Neuheit unbeabsichtigte Wechselwirkungen haben. Bitte aktivieren Sie diese Einstellung, wenn Sie interessiert sind, Feedback zu experimentellen Funktionen zu geben. Die neuen Standardwerte sind
-
fetch.negotiationAlgorithm=skippingkann die Zeiten für die Fetch-Verhandlung verbessern, indem mehr Commits auf einmal übersprungen werden, wodurch die Anzahl der Roundtrips reduziert wird. -
pack.useBitmapBoundaryTraversal=truekann die Zeiten für die Bitmap-Traversierung verbessern, indem weniger Objekte durchlaufen werden. -
pack.allowPackReuse=multikann die Zeit für die Erstellung eines Packs verbessern, indem Objekte aus mehreren Packs wiederverwendet werden, anstatt nur aus einem. -
pack.usePathWalkkann die Erstellung von Packfiles beschleunigen und die Packfiles bei bestimmten Namenskollisionen mit dem Standard-Namens-Hash von Git deutlich kleiner machen. -
init.defaultRefFormat=reftablesorgt dafür, dass neu initialisierte Repositories das Reftable-Format zum Speichern von Referenzen verwenden. Dieses neue Format löst Probleme mit Case-insensitiven Dateisystemen, komprimiert besser und bietet bei vielen Anwendungsfällen eine deutlich bessere Leistung. Weitere Informationen zu diesem neuen Speicherformat finden Sie unter Documentation/technical/reftable.adoc.
-
- feature.manyFiles
-
Aktiviert Konfigurationsoptionen, die für Repositories mit vielen Dateien im Arbeitsverzeichnis optimiert sind. Bei vielen Dateien können Befehle wie
gitstatusundgitcheckoutlangsam sein, und diese neuen Standardwerte verbessern die Leistung.-
index.skipHash=truebeschleunigt Index-Schreibvorgänge, indem keine nachfolgende Prüfsumme berechnet wird. Beachten Sie, dass Git-Versionen älter als 2.13.0 den Index nicht mehr parsen können und Git-Versionen älter als 2.40.0 währendgitfsckeinen beschädigten Index melden. -
index.version=4aktiviert die Pfadpräfix-Kompression im Index. -
core.untrackedCache=trueaktiviert den Cache für nicht verfolgte Dateien. Diese Einstellung geht davon aus, dass mtime auf Ihrem Rechner funktioniert.
-
- fetch.recurseSubmodules
-
Diese Option steuert, ob
gitfetch(und der zugrunde liegende Fetch ingitpull) rekursiv in befüllte Submodule holt. Diese Option kann entweder auf einen booleschen Wert oder auf on-demand gesetzt werden. Wenn sie auf einen booleschen Wert gesetzt wird, ändert sich das Verhalten von fetch und pull, so dass sie bedingungslos in Submodule rekursieren, wenn sie auf true gesetzt ist, oder gar nicht rekursieren, wenn sie auf false gesetzt ist. Wenn sie auf on-demand gesetzt ist, rekursieren fetch und pull nur in ein befülltes Submodul, wenn sein Superprojekt einen Commit abruft, der die Referenz des Submoduls aktualisiert. Standardmäßig ist sie on-demand oder auf den Wert von submodule.recurse gesetzt, falls dieser gesetzt ist. - fetch.fsckObjects
-
Wenn auf true gesetzt, prüft git-fetch-pack alle geholten Objekte. Lesen Sie
transfer.fsckObjects, um zu sehen, was geprüft wird. Standardmäßig false. Wenn nicht gesetzt, wird der Wert vontransfer.fsckObjectsstattdessen verwendet. - fetch.fsck.<msg-id>
-
Verhält sich wie
fsck.<msg-id>, wird aber von git-fetch-pack[1] anstelle von git-fsck[1] verwendet. Einzelheiten finden Sie in der Dokumentation zufsck.<msg-id>. - fetch.fsck.skipList
-
Verhält sich wie
fsck.skipList, wird aber von git-fetch-pack[1] anstelle von git-fsck[1] verwendet. Einzelheiten finden Sie in der Dokumentation zufsck.skipList. - fetch.unpackLimit
-
Wenn die Anzahl der über den Git-nativen Transfer geholten Objekte unter diesem Limit liegt, werden die Objekte in lose Objektdateien entpackt. Wenn die Anzahl der empfangenen Objekte dieses Limit erreicht oder überschreitet, wird das empfangene Pack als Pack gespeichert, nachdem alle fehlenden Delta-Basen hinzugefügt wurden. Das Speichern des Packs von einem Push kann den Push-Vorgang beschleunigen, insbesondere auf langsamen Dateisystemen. Wenn nicht gesetzt, wird der Wert von
transfer.unpackLimitstattdessen verwendet. - fetch.prune
-
Wenn true, verhält sich fetch automatisch so, als ob die Option
--pruneauf der Kommandozeile angegeben worden wäre. Siehe auchremote.<name>.pruneund den Abschnitt PRUNING in git-fetch[1]. - fetch.pruneTags
-
Wenn true, verhält sich fetch automatisch so, als ob das Refspec
refs/tags/*:refs/tags/*beim Löschen angegeben wurde, falls es noch nicht gesetzt ist. Dies ermöglicht die Einstellung sowohl dieser Option als auch vonfetch.prune, um eine 1:1-Zuordnung zu den Upstream-Refs beizubehalten. Siehe auchremote.<name>.pruneTagsund den Abschnitt PRUNING in git-fetch[1]. - fetch.all
-
Wenn true, versucht fetch, alle verfügbaren Remote-Repositories zu aktualisieren. Dieses Verhalten kann durch Angabe von
--no-alloder durch explizite Angabe eines oder mehrerer Remote-Repositories, von denen geholt werden soll, überschrieben werden. Standardmäßig false. - fetch.output
-
Steuert, wie der Status von Ref-Updates ausgegeben wird. Gültige Werte sind
fullundcompact. Der Standardwert istfull. Einzelheiten finden Sie im Abschnitt OUTPUT in git-fetch[1]. - fetch.negotiationAlgorithm
-
Steuert, wie Informationen über die Commits im lokalen Repository gesendet werden, wenn die Inhalte des vom Server zu sendenden Packfiles ausgehandelt werden. Setzen Sie auf "consecutive", um einen Algorithmus zu verwenden, der aufeinanderfolgende Commits durchläuft und jeden einzelnen prüft. Setzen Sie auf "skipping", um einen Algorithmus zu verwenden, der Commits überspringt, um schneller zu konvergieren, aber zu einem unnötig großen Packfile führen kann; oder setzen Sie auf "noop", um überhaupt keine Informationen zu senden, was mit ziemlicher Sicherheit zu einem unnötig großen Packfile führt, aber den Verhandlungsschritt überspringt. Setzen Sie auf "default", um zuvor getroffene Einstellungen zu überschreiben und das Standardverhalten zu verwenden. Standardmäßig ist dies normalerweise "consecutive", aber wenn
feature.experimentaltrue ist, ist der Standardwert "skipping". Unbekannte Werte führen dazu, dass git fetch einen Fehler ausgibt.Siehe auch die Optionen
--negotiate-onlyund--negotiation-tipin git-fetch[1]. - fetch.showForcedUpdates
-
Auf false setzen, um
--no-show-forced-updatesin den Befehlen git-fetch[1] und git-pull[1] zu aktivieren. Standardmäßig true. - fetch.parallel
-
Gibt die maximale Anzahl von Fetch-Operationen an, die gleichzeitig parallel ausgeführt werden sollen (Submodule oder Remotes, wenn die Option
--multiplevon git-fetch[1] aktiv ist).Ein Wert von 0 ergibt einen vernünftigen Standardwert. Wenn nicht gesetzt, ist der Standardwert 1.
Für Submodule kann diese Einstellung durch die Konfigurationseinstellung
submodule.fetchJobsüberschrieben werden. - fetch.writeCommitGraph
-
Auf true setzen, um nach jedem
gitfetch-Befehl, der ein Packfile von einem Remote-Repository herunterlädt, einen Commit-Graphen zu schreiben. Mit der Option--spliterstellen die meisten Ausführungen eine sehr kleine Commit-Graph-Datei zusätzlich zu den vorhandenen Commit-Graph-Dateien. Gelegentlich werden diese Dateien zusammengeführt, und das Schreiben kann länger dauern. Ein aktualisierter Commit-Graph verbessert die Leistung vieler Git-Befehle, einschließlichgitmerge-base,gitpush-fundgitlog--graph. Standardmäßig false. - fetch.bundleURI
-
Dieser Wert speichert eine URI zum Herunterladen von Git-Objektdaten aus einer Bundle-URI, bevor ein inkrementeller Fetch vom ursprünglichen Git-Server durchgeführt wird. Dies ähnelt dem Verhalten der Option
--bundle-uriin git-clone[1].gitclone--bundle-urisetzt den Wert vonfetch.bundleURI, wenn die angegebene Bundle-URI eine Bundle-Liste enthält, die für inkrementelle Fetches organisiert ist.Wenn Sie diesen Wert ändern und Ihr Repository einen Wert für
fetch.bundleCreationTokenhat, entfernen Sie diesenfetch.bundleCreationToken-Wert, bevor Sie vom neuen Bundle-URI abrufen. - fetch.bundleCreationToken
-
Wenn
fetch.bundleURIzum inkrementellen Abrufen aus einer Bundle-Liste verwendet wird, die die "creationToken"-Heuristik verwendet, speichert dieser Konfigurationswert den maximalencreationToken-Wert der heruntergeladenen Bundles. Dieser Wert wird verwendet, um das Herunterladen von Bundles in Zukunft zu verhindern, wenn der angegebenecreationTokennicht strikt größer als dieser Wert ist.Die Werte für Creation Tokens werden vom Anbieter der jeweiligen Bundle-URI gewählt. Wenn Sie die URI unter
fetch.bundleURIändern, stellen Sie sicher, dass Sie den Wert fürfetch.bundleCreationTokenentfernen, bevor Sie abrufen. - filter.<driver>.clean
-
Der Befehl, der verwendet wird, um den Inhalt einer Arbeitsbaumdatei beim Einchecken in einen Blob zu konvertieren. Einzelheiten finden Sie unter gitattributes[5].
- filter.<driver>.smudge
-
Der Befehl, der verwendet wird, um den Inhalt eines Blob-Objekts beim Auschecken in eine Arbeitsbaumdatei zu konvertieren. Einzelheiten finden Sie unter gitattributes[5].
- format.attach
-
Aktiviert multipart/mixed-Anhänge als Standard für format-patch. Der Wert kann auch eine Zeichenkette in doppelten Anführungszeichen sein, die Anhänge als Standard aktiviert und den Wert als Trennzeichen festlegt. Siehe die Option --attach in git-format-patch[1]. Um einen früheren Wert zu widerrufen, setzen Sie ihn auf eine leere Zeichenkette.
- format.from
-
Bietet den Standardwert für die Option
--fromfür format-patch. Akzeptiert einen booleschen Wert oder einen Namen und eine E-Mail-Adresse. Wenn false, verwendet format-patch standardmäßig--no-fromund verwendet die Commit-Autoren direkt im "From:"-Feld von Patch-Mails. Wenn true, verwendet format-patch standardmäßig--fromund verwendet Ihre Committer-Identität im "From:"-Feld von Patch-Mails und fügt ein "From:"-Feld im Body der Patch-Mail hinzu, wenn es abweicht. Wenn auf einen nicht-booleschen Wert gesetzt, verwendet format-patch diesen Wert anstelle Ihrer Committer-Identität. Standardmäßig false. - format.forceInBodyFrom
-
Bietet den Standardwert für die Option
--[no-]force-in-body-fromfür format-patch. Standardmäßig false. - format.numbered
-
Ein boolescher Wert, der Sequenznummern in Patch-Betreffzeilen aktivieren oder deaktivieren kann. Standardmäßig "auto", was sie nur aktiviert, wenn mehr als ein Patch vorhanden ist. Sie kann für alle Nachrichten aktiviert oder deaktiviert werden, indem sie auf "true" oder "false" gesetzt wird. Siehe die Option --numbered in git-format-patch[1].
- format.headers
-
Zusätzliche E-Mail-Header, die in einen Patch aufgenommen werden sollen, der per E-Mail übermittelt wird. Siehe git-format-patch[1].
- format.to
- format.cc
-
Zusätzliche Empfänger, die in einen Patch aufgenommen werden sollen, der per E-Mail übermittelt wird. Siehe die Optionen --to und --cc in git-format-patch[1].
- format.subjectPrefix
-
Der Standard für format-patch ist die Ausgabe von Dateien mit dem Betreff-Präfix [PATCH]. Verwenden Sie diese Variable, um dieses Präfix zu ändern.
- format.coverFromDescription
-
Der Standardmodus für format-patch, um zu bestimmen, welche Teile des Anschreibens mit der Beschreibung des Branches gefüllt werden. Siehe die Option
--cover-from-descriptionin git-format-patch[1]. - format.signature
-
Der Standard für format-patch ist die Ausgabe einer Signatur mit der Git-Versionsnummer. Verwenden Sie diese Variable, um diesen Standard zu ändern. Setzen Sie diese Variable auf eine leere Zeichenkette (""), um die Signaturerstellung zu unterdrücken.
- format.signatureFile
-
Funktioniert genauso wie format.signature, nur dass der Inhalt der durch diese Variable angegebenen Datei als Signatur verwendet wird.
- format.suffix
-
Der Standard für format-patch ist die Ausgabe von Dateien mit der Endung
.patch. Verwenden Sie diese Variable, um diese Endung zu ändern (stellen Sie sicher, dass Sie den Punkt einschließen, wenn Sie ihn möchten). - format.encodeEmailHeaders
-
Kodiert E-Mail-Header mit Nicht-ASCII-Zeichen mit "Q-Encoding" (beschrieben in RFC 2047) für die E-Mail-Übertragung. Standardmäßig true.
- format.pretty
-
Das Standardformat für die Ausgabe von log/show/whatchanged-Befehlen. Siehe git-log[1], git-show[1], git-whatchanged[1].
- format.thread
-
Der Standard-Threading-Stil für git format-patch. Kann ein boolescher Wert sein oder
shallowoderdeep.shallow-Threading macht jede E-Mail zu einer Antwort auf den Kopf der Serie, wobei der Kopf aus dem Anschreiben, dem--in-reply-tound der ersten Patch-E-Mail in dieser Reihenfolge gewählt wird.deep-Threading macht jede E-Mail zu einer Antwort auf die vorherige. Ein wahrer boolescher Wert ist dasselbe wieshallow, und ein falscher Wert deaktiviert das Threading. - format.signOff
-
Ein boolescher Wert, mit dem die Option
-s/--signoffvon format-patch standardmäßig aktiviert werden kann. Hinweis: Das Hinzufügen desSigned-off-by-Trailers zu einem Patch sollte eine bewusste Handlung sein und bedeutet, dass Sie zertifizieren, dass Sie das Recht haben, diese Arbeit unter derselben Open-Source-Lizenz einzureichen. Weitere Informationen finden Sie im Dokument SubmittingPatches. - format.coverLetter
-
Ein boolescher Wert, der steuert, ob ein Anschreiben generiert wird, wenn format-patch aufgerufen wird, kann aber auch auf "auto" gesetzt werden, um nur dann ein Anschreiben zu generieren, wenn mehr als ein Patch vorhanden ist. Standardmäßig false.
- format.outputDirectory
-
Legen Sie ein benutzerdefiniertes Verzeichnis fest, in dem die resultierenden Dateien gespeichert werden sollen, anstatt im aktuellen Arbeitsverzeichnis. Alle Verzeichniskomponenten werden erstellt.
- format.filenameMaxLength
-
Die maximale Länge der von
format-patchgenerierten Ausgabedateinamen; standardmäßig 64. Kann durch die Kommandozeilenoption--filename-max-length=<n> überschrieben werden. - format.useAutoBase
-
Ein boolescher Wert, mit dem die Option
--base=autovon format-patch standardmäßig aktiviert werden kann. Kann auch auf "whenAble" gesetzt werden, um die Aktivierung von--base=autozu ermöglichen, wenn eine geeignete Basis verfügbar ist, aber andernfalls das Hinzufügen von Basisinformationen zu überspringen, ohne dass format abbricht. - format.notes
-
Bietet den Standardwert für die Option
--notesfür format-patch. Akzeptiert einen booleschen Wert oder einen Ref, der angibt, wo Notizen bezogen werden sollen. Wenn false, verwendet format-patch standardmäßig--no-notes. Wenn true, verwendet format-patch standardmäßig--notes. Wenn auf einen nicht-booleschen Wert gesetzt, verwendet format-patch standardmäßig--notes=<ref>, wobeirefder nicht-boolesche Wert ist. Standardmäßig false.Wenn Sie den Ref
refs/notes/trueverwenden möchten, verwenden Sie stattdessen diesen literalen Wert.Diese Konfiguration kann mehrmals angegeben werden, um das Einbeziehen mehrerer Notizen-Refs zu ermöglichen. In diesem Fall verhält sie sich ähnlich wie mehrere übergebene Optionen
--[no-]notes[=]. Das heißt, ein Wert vontruezeigt die Standardnotizen an, ein Wert von <ref> zeigt auch Notizen aus diesem Notizen-Ref an und ein Wert vonfalsenegiert vorherige Konfigurationen und zeigt keine Notizen an.Zum Beispiel,
[format] notes = true notes = foo notes = false notes = bar
zeigt nur Notizen von
refs/notes/baran. - format.mboxrd
-
Ein boolescher Wert, der das robuste "mboxrd"-Format aktiviert, wenn
--stdoutverwendet wird, um Zeilen, die mit ">From " beginnen, zu escapen. - format.noprefix
-
Wenn gesetzt, werden keine Quell- oder Zielpräfixe in Patches angezeigt. Dies ist äquivalent zur Option
diff.noprefix, die vongitdiffverwendet wird (aber vonformat-patchnicht berücksichtigt wird). Beachten Sie, dass Empfänger von Patches, die Sie generieren, diese mit der Option-p0anwenden müssen, wenn Sie diese Option setzen. - fsck.<msg-id>
-
Während fsck kann Git Probleme mit Legacy-Daten finden, die nicht von aktuellen Git-Versionen generiert würden und die nicht über das Netzwerk gesendet würden, wenn
transfer.fsckObjectsgesetzt wäre. Dieses Feature ist dazu gedacht, mit Legacy-Repositories zu arbeiten, die solche Daten enthalten.Das Setzen von
fsck.<msg-id> wird von git-fsck[1] übernommen, aber um Pushes solcher Daten zu akzeptieren, setzen Sie stattdessenreceive.fsck.<msg-id>, oder um sie zu klonen oder abzurufen, setzen Siefetch.fsck.<msg-id>.Der Rest der Dokumentation diskutiert
fsck.*der Kürze halber, aber dasselbe gilt für die entsprechenden Variablenreceive.fsck.*undfetch.fsck.*.Im Gegensatz zu Variablen wie
color.uiundcore.editorgreifen die Variablenreceive.fsck.<msg-id> undfetch.fsck.<msg-id> nicht auf die Konfigurationfsck.<msg-id> zurück, wenn sie nicht gesetzt sind. Um die gleichen fsck-Einstellungen unter verschiedenen Umständen einheitlich zu konfigurieren, müssen alle drei auf die gleichen Werte gesetzt werden.Wenn
fsck.<msg-id> gesetzt ist, können Fehler durch Konfiguration vonfsck.<msg-id> in Warnungen und umgekehrt umgeschaltet werden, wobei <msg-id> die fsck-Nachrichten-ID ist und der Wert einer vonerror,warnoderignoreist. Zur Bequemlichkeit wird fsck dem Fehler/der Warnung die Nachrichten-ID vorangestellt, z. B. "missingEmail: invalid author/committer line - missing email" bedeutet, dass das Setzen vonfsck.missingEmail=ignoredieses Problem ausblendet.Im Allgemeinen ist es besser, vorhandene Objekte mit Problemen mit
fsck.skipListaufzulisten, anstatt die Art der Fehler aufzulisten, die diese problematischen Objekte teilen, um ignoriert zu werden, da letzteres erlaubt, dass neue Instanzen der gleichen Fehler unbemerkt bleiben.Das Setzen eines unbekannten Werts für
fsck.<msg-id> führt dazu, dass fsck abstürzt, aber das gleiche fürreceive.fsck.<msg-id> undfetch.fsck.<msg-id> führt nur zu einer Warnung von git.Siehe den Abschnitt
FsckMessagesin git-fsck[1] für unterstützte Werte von <msg-id>. - fsck.skipList
-
Der Pfad zu einer Liste von Objektnamen (d. h. eine unabgekürzte SHA-1 pro Zeile), von denen bekannt ist, dass sie auf nicht-fatale Weise fehlerhaft sind und ignoriert werden sollten. Auf Git-Versionen 2.20 und neuer werden Kommentare (#), leere Zeilen und beliebige führende und nachgestellte Leerzeichen ignoriert. Alles außer einer SHA-1 pro Zeile führt auf älteren Versionen zu einem Fehler.
Dieses Feature ist nützlich, wenn ein etabliertes Projekt akzeptiert werden soll, obwohl frühe Commits Fehler enthalten, die sicher ignoriert werden können, wie z. B. ungültige E-Mail-Adressen von Autoren. Hinweis: Beschädigte Objekte können mit dieser Einstellung nicht übersprungen werden.
Wie
fsck.<msg-id> hat diese Variable entsprechende Variantenreceive.fsck.skipListundfetch.fsck.skipList.Im Gegensatz zu Variablen wie
color.uiundcore.editorgreifen die Variablenreceive.fsck.skipListundfetch.fsck.skipListnicht auf die Konfigurationfsck.skipListzurück, wenn sie nicht gesetzt sind. Um die gleichen fsck-Einstellungen unter verschiedenen Umständen einheitlich zu konfigurieren, müssen alle drei auf die gleichen Werte gesetzt werden.Ältere Git-Versionen (vor 2.20) dokumentierten, dass die Liste der Objektnamen sortiert sein sollte. Dies war nie eine Anforderung; die Objektnamen konnten in beliebiger Reihenfolge erscheinen, aber beim Lesen der Liste verfolgten wir, ob die Liste sortiert war, für die Implementierung einer internen binären Suche, die sich mit einer bereits sortierten Liste etwas Arbeit ersparen konnte. Es sei denn, Sie hatten eine riesige Liste, gab es keinen Grund, sich die Mühe zu machen, die Liste vorab zu sortieren. Nach Git-Version 2.20 wird stattdessen eine Hash-Implementierung verwendet, sodass es keinen Grund mehr gibt, die Liste vorab zu sortieren.
- fsmonitor.allowRemote
-
Standardmäßig weigert sich der fsmonitor-Daemon, mit netzwerkgebundenen Repositories zu arbeiten. Das Setzen von
fsmonitor.allowRemoteauftrueüberschreibt dieses Verhalten. Nur beachtet, wenncore.fsmonitorauftruegesetzt ist. - fsmonitor.socketDir
-
Diese Mac OS-spezifische Option, wenn sie gesetzt ist, gibt das Verzeichnis an, in dem der Unix-Domain-Socket erstellt werden soll, der für die Kommunikation zwischen dem fsmonitor-Daemon und verschiedenen Git-Befehlen verwendet wird. Das Verzeichnis muss sich auf einem nativen Mac OS-Dateisystem befinden. Nur beachtet, wenn
core.fsmonitorauftruegesetzt ist. - gc.aggressiveDepth
-
Der Tiefenparameter, der im Delta-Komprimierungsalgorithmus von git gc --aggressive verwendet wird. Dieser hat einen Standardwert von 50, was dem Standardwert für die Option
--depthentspricht, wenn--aggressivenicht verwendet wird.Einzelheiten finden Sie in der Dokumentation zur Option
--depthin git-repack[1]. - gc.aggressiveWindow
-
Der Fenstergrößenparameter, der im Delta-Komprimierungsalgorithmus von git gc --aggressive verwendet wird. Dieser hat einen Standardwert von 250, was eine wesentlich aggressivere Fenstergröße ist als der Standardwert
--windowvon 10.Einzelheiten finden Sie in der Dokumentation zur Option
--windowin git-repack[1]. - gc.auto
-
Wenn ungefähr mehr als diese Anzahl loser Objekte im Repository vorhanden ist, packt
gitgc--autodiese. Einige Porcelain-Befehle verwenden diesen Befehl, um von Zeit zu Zeit eine leichtgewichtige Garbage Collection durchzuführen. Der Standardwert ist 6700.Das Setzen auf 0 deaktiviert nicht nur die automatische Packung basierend auf der Anzahl loser Objekte, sondern auch jede andere Heuristik, die
gitgc--autosonst verwenden würde, um zu bestimmen, ob Arbeit zu tun ist, wie z. B.gc.autoPackLimit. - gc.autoPackLimit
-
Wenn mehr als diese Anzahl von Packs, die nicht mit einer
*.keep-Datei im Repository gekennzeichnet sind, vorhanden ist, konsolidiertgitgc--autodiese zu einem größeren Pack. Der Standardwert ist 50. Das Setzen auf 0 deaktiviert dies. Das Setzen vongc.autoauf 0 deaktiviert dies ebenfalls.Siehe die Konfigurationsvariable
gc.bigPackThresholdunten. Wenn sie verwendet wird, beeinflusst sie, wie das automatische Pack-Limit funktioniert. - gc.autoDetach
-
Lassen Sie
gitgc--autosofort zurückkehren und im Hintergrund laufen, wenn das System dies unterstützt. Standard ist true. Diese Konfigurationsvariable dient als Fallback, fallsmaintenance.autoDetachnicht gesetzt ist. - gc.bigPackThreshold
-
Wenn ungleich null, werden alle Nicht-Cruft-Packs, die größer als dieser Grenzwert sind, bei Ausführung von
gitgcbeibehalten. Dies ist sehr ähnlich zu--keep-largest-pack, außer dass alle Nicht-Cruft-Packs, die den Schwellenwert erfüllen, beibehalten werden, nicht nur das größte Pack. Standard ist null. Übliche Einheiten-Suffixe von k, m oder g werden unterstützt.Beachten Sie, dass, wenn die Anzahl der beibehaltenen Packs größer ist als gc.autoPackLimit, diese Konfigurationsvariable ignoriert wird, alle Packs außer dem Basis-Pack neu verpackt werden. Danach sollte die Anzahl der Packs unter gc.autoPackLimit liegen und gc.bigPackThreshold wieder beachtet werden.
Wenn die für
gitrepackgeschätzte Speichermenge für einen reibungslosen Ablauf nicht verfügbar ist undgc.bigPackThresholdnicht gesetzt ist, wird auch das größte Pack ausgeschlossen (dies entspricht der Ausführung vongitgcmit--keep-largest-pack). - gc.writeCommitGraph
-
Wenn true, dann schreibt gc den Commit-Graph neu, wenn git-gc[1] ausgeführt wird. Bei Verwendung von
gitgc--autowird der Commit-Graph aktualisiert, wenn eine Wartung erforderlich ist. Standard ist true. Einzelheiten finden Sie unter git-commit-graph[1]. - gc.logExpiry
-
Wenn die Datei gc.log existiert, gibt
gitgc--autoihren Inhalt aus und wird mit dem Status null beendet, anstatt ausgeführt zu werden, es sei denn, diese Datei ist älter als gc.logExpiry. Standard ist "1.day". Weitere Möglichkeiten zur Angabe ihres Werts finden Sie untergc.pruneExpire. - gc.packRefs
-
Das Ausführen von
gitpack-refsin einem Repository macht es für Git-Versionen vor 1.5.1.2 über langsame Transporte wie HTTP unklonbar. Diese Variable bestimmt, ob git gcgitpack-refsausführt. Dies kann aufnotbaregesetzt werden, um es in allen nicht-bare Repos zu aktivieren, oder es kann auf einen booleschen Wert gesetzt werden. Der Standardwert isttrue. - gc.cruftPacks
-
Speichert nicht erreichbare Objekte in einem Cruft-Pack (siehe git-repack[1]) anstelle von losen Objekten. Der Standardwert ist
true. - gc.maxCruftSize
-
Begrenzt die Größe neuer Cruft-Packs beim Repacking. Wenn dies zusätzlich zu
--max-cruft-sizeangegeben wird, hat die Kommandozeilenoption Vorrang. Siehe die Option--max-cruft-sizevon git-repack[1]. - gc.pruneExpire
-
Wenn git gc ausgeführt wird, ruft es prune --expire 2.weeks.ago auf (und repack --cruft --cruft-expiration 2.weeks.ago, wenn Cruft-Packs über
gc.cruftPacksoder--cruftverwendet werden). Überschreiben Sie die Kulanzzeit mit dieser Konfigurationsvariable. Der Wert "now" kann verwendet werden, um diese Kulanzzeit zu deaktivieren und nicht erreichbare Objekte sofort zu löschen, oder "never" kann verwendet werden, um das Löschen zu unterdrücken. Diese Funktion hilft, Beschädigungen zu verhindern, wenn git gc gleichzeitig mit einem anderen Prozess ausgeführt wird, der in das Repository schreibt; siehe den Abschnitt "NOTES" von git-gc[1]. - gc.worktreePruneExpire
-
Wenn git gc ausgeführt wird, ruft es git worktree prune --expire 3.months.ago auf. Diese Konfigurationsvariable kann verwendet werden, um eine andere Kulanzzeit festzulegen. Der Wert "now" kann verwendet werden, um die Kulanzzeit zu deaktivieren und
$GIT_DIR/worktreessofort zu bereinigen, oder "never" kann verwendet werden, um die Bereinigung zu unterdrücken. - gc.reflogExpire
- gc.<pattern>.reflogExpire
-
git reflog expire entfernt Reflog-Einträge, die älter als diese Zeit sind; Standard ist 90 Tage. Der Wert "now" löscht alle Einträge sofort und "never" unterdrückt das Löschen vollständig. Mit "<pattern>" (z. B. "refs/stash") in der Mitte gilt die Einstellung nur für die mit dem Muster übereinstimmenden Refs.
- gc.reflogExpireUnreachable
- gc.<pattern>.reflogExpireUnreachable
-
git reflog expire entfernt Reflog-Einträge, die älter als diese Zeit sind und nicht vom aktuellen Tipppunkt aus erreichbar sind; Standard ist 30 Tage. Der Wert "now" löscht alle Einträge sofort und "never" unterdrückt das Löschen vollständig. Mit "<pattern>" (z. B. "refs/stash") in der Mitte gilt die Einstellung nur für die mit dem Muster übereinstimmenden Refs.
Diese Arten von Einträgen werden im Allgemeinen als Ergebnis der Verwendung von
gitcommit--amendodergitrebaseerstellt und sind die Commits vor dem Amend oder Rebase. Da diese Änderungen nicht Teil des aktuellen Projekts sind, möchten die meisten Benutzer sie früher ablaufen lassen, weshalb die Standardeinstellung aggressiver ist alsgc.reflogExpire. - gc.recentObjectsHook
-
Bei der Entscheidung, ob ein Objekt entfernt werden soll (entweder beim Generieren eines Cruft-Packs oder beim Speichern nicht erreichbarer Objekte als lose Objekte), wird die Shell verwendet, um die angegebenen Befehle auszuführen. Interpretiert deren Ausgabe als Objekt-IDs, die Git als "aktuell" betrachtet, unabhängig von ihrem Alter. Indem ihre mtimes als "jetzt" behandelt werden, werden alle Objekte (und ihre Nachfolger), die in der Ausgabe erwähnt werden, unabhängig von ihrem tatsächlichen Alter beibehalten.
Die Ausgabe muss genau eine Hex-Objekt-ID pro Zeile enthalten und nichts anderes. Objekte, die im Repository nicht gefunden werden können, werden ignoriert. Mehrere Hooks werden unterstützt, aber alle müssen erfolgreich beendet werden, sonst wird die Operation (entweder das Generieren eines Cruft-Packs oder das Entpacken nicht erreichbarer Objekte) angehalten.
- gc.repackFilter
-
Beim Repacking wird der angegebene Filter verwendet, um bestimmte Objekte in eine separate Packdatei zu verschieben. Siehe die Option
--filter=<filter-spec> von git-repack[1]. - gc.repackFilterTo
-
Beim Repacking und der Verwendung eines Filters, siehe
gc.repackFilter, wird der angegebene Speicherort verwendet, um die Packdatei mit den gefilterten Objekten zu erstellen. **WARNUNG:** Der angegebene Speicherort sollte zugänglich sein, z. B. über den Git-Alternates-Mechanismus, da das Repository sonst von Git als beschädigt betrachtet werden könnte, da es möglicherweise nicht auf die Objekte in dieser Packdatei zugreifen kann. Siehe die Option--filter-to=<dir> von git-repack[1] und den Abschnittobjects/info/alternatesvon gitrepository-layout[5]. - gc.rerereResolved
-
Aufzeichnungen von zuvor aufgelösten Merge-Konflikten werden für diese Anzahl von Tagen aufbewahrt, wenn git rerere gc ausgeführt wird. Sie können auch menschenlesbarere Formate wie "1.month.ago" usw. verwenden. Der Standardwert sind 60 Tage. Siehe git-rerere[1].
- gc.rerereUnresolved
-
Aufzeichnungen von nicht aufgelösten Merge-Konflikten werden für diese Anzahl von Tagen aufbewahrt, wenn git rerere gc ausgeführt wird. Sie können auch menschenlesbarere Formate wie "1.month.ago" usw. verwenden. Der Standardwert sind 15 Tage. Siehe git-rerere[1].
- gitcvs.commitMsgAnnotation
-
Hängt diese Zeichenkette an jede Commit-Nachricht an. Auf eine leere Zeichenkette setzen, um diese Funktion zu deaktivieren. Standardmäßig "via git-CVS emulator".
- gitcvs.enabled
-
Ob die CVS-Server-Schnittstelle für dieses Repository aktiviert ist. Siehe git-cvsserver[1].
- gitcvs.logFile
-
Pfad zu einer Protokolldatei, in die die CVS-Server-Schnittstelle verschiedene Dinge protokolliert. Siehe git-cvsserver[1].
- gitcvs.usecrlfattr
-
Wenn true, sucht der Server nach den Zeilenendkonvertierungsattributen für Dateien, um die
-k-Modi zu bestimmen. Wenn die Attribute Git zwingen, eine Datei als Text zu behandeln, wird der-k-Modus leer gelassen, damit CVS-Clients sie als Text behandeln. Wenn sie die Textkonvertierung unterdrücken, wird die Datei mit dem Modus -kb gesetzt, was jede Zeilenende-Bearbeitung unterdrückt, die der Client sonst möglicherweise durchführt. Wenn die Attribute den Dateityp nicht bestimmen können, wirdgitcvs.allBinaryverwendet. Siehe gitattributes[5]. - gitcvs.allBinary
-
Dies wird verwendet, wenn
gitcvs.usecrlfattrnicht den richtigen -kb-Modus bestimmt. Wenn true, werden alle nicht aufgelösten Dateien im Modus -kb an den Client gesendet. Dies veranlasst den Client, sie als Binärdateien zu behandeln, was jede Zeilenende-Bearbeitung unterdrückt, die er sonst möglicherweise durchführt. Alternativ, wenn er auf "guess" gesetzt ist, werden die Inhalte der Datei untersucht, um zu entscheiden, ob sie binär ist, ähnlich wie beicore.autocrlf. - gitcvs.dbName
-
Datenbank, die von git-cvsserver zum Zwischenspeichern von Revisionsinformationen aus dem Git-Repository verwendet wird. Die genaue Bedeutung hängt vom verwendeten Datenbanktreiber ab; für SQLite (Standardtreiber) ist dies ein Dateiname. Unterstützt Variablensubstitution (siehe git-cvsserver[1] für Details). Darf keine Semikolons (;) enthalten. Standard: %Ggitcvs.%m.sqlite
- gitcvs.dbDriver
-
Verwendeter Perl DBI-Treiber. Sie können hier jeden verfügbaren Treiber angeben, aber er funktioniert möglicherweise nicht. git-cvsserver wird mit DBD::SQLite getestet, soll mit DBD::Pg funktionieren und soll **nicht** mit DBD::mysql funktionieren. Experimentelle Funktion. Darf keine Doppelpunkte (:) enthalten. Standard: SQLite. Siehe git-cvsserver[1].
- gitcvs.dbUser
- gitcvs.dbPass
-
Datenbankbenutzer und -passwort. Nur nützlich, wenn
gitcvs.dbDrivergesetzt ist, da SQLite keine Datenbankbenutzer und/oder -passwörter kennt. gitcvs.dbUser unterstützt Variablensubstitution (siehe git-cvsserver[1] für Details). - gitcvs.dbTableNamePrefix
-
Präfix für den Namen der Datenbanktabellen. Wird den Namen aller verwendeten Datenbanktabellen vorangestellt, wodurch eine einzelne Datenbank für mehrere Repositories verwendet werden kann. Unterstützt Variablensubstitution (siehe git-cvsserver[1] für Details). Alle nicht-alphabetischen Zeichen werden durch Unterstriche ersetzt.
Alle gitcvs-Variablen außer gitcvs.usecrlfattr und gitcvs.allBinary können auch als gitcvs.<access_method>.<varname> angegeben werden (wobei access_method entweder "ext" oder "pserver" ist), damit sie nur für die angegebene Zugriffsmethode gelten.
- gitweb.category
- gitweb.description
- gitweb.owner
- gitweb.url
-
Siehe gitweb[1] für die Beschreibung.
- gitweb.avatar
- gitweb.blame
- gitweb.grep
- gitweb.highlight
- gitweb.patches
- gitweb.pickaxe
- gitweb.remote_heads
- gitweb.showSizes
- gitweb.snapshot
-
Siehe gitweb.conf[5] für die Beschreibung.
- gpg.program
-
Pfad zum Programm, das anstelle von "
gpg" beim Erstellen oder Überprüfen einer PGP-Signatur verwendet wird. Das Programm muss die gleiche Befehlszeilenschnittstelle wie GPG unterstützen, d. h., um eine abgetrennte Signatur zu überprüfen, wird "gpg --verify $signature - <$file" ausgeführt, und das Programm muss eine gültige Signatur signalisieren, indem es mit dem Exit-Code 0 beendet wird. Um eine abgetrennte ASCII-signierte Signatur zu generieren, wird die Standardeingabe von "gpg-bsau$key" mit dem zu signierenden Inhalt gefüttert, und das Programm muss das Ergebnis an seine Standardausgabe senden. - gpg.format
-
Gibt das Schlüsselformat an, das beim Signieren mit
--gpg-signverwendet wird. Standard ist "openpgp". Andere mögliche Werte sind "x509", "ssh".Siehe gitformat-signature[5] für das Signaturformat, das sich je nach ausgewähltem
gpg.formatunterscheidet. - gpg.<format>.program
-
Verwenden Sie dies, um das Programm für das von Ihnen gewählte Signaturformat anzupassen (siehe
gpg.programundgpg.format).gpg.programkann weiterhin als Legacy-Synonym fürgpg.openpgp.programverwendet werden. Der Standardwert fürgpg.x509.programist "gpgsm" und fürgpg.ssh.programist es "ssh-keygen". - gpg.minTrustLevel
-
Gibt eine minimale Vertrauensstufe für die Signaturprüfung an. Wenn diese Option nicht gesetzt ist, erfordert die Signaturprüfung für Merge-Vorgänge einen Schlüssel mit mindestens "marginal" Vertrauen. Andere Operationen, die eine Signaturprüfung durchführen, erfordern einen Schlüssel mit mindestens "undefined" Vertrauen. Das Setzen dieser Option überschreibt die erforderliche Vertrauensstufe für alle Operationen. Unterstützte Werte, in zunehmender Reihenfolge der Bedeutung:
-
undefined -
never -
marginal -
fully -
ultimate
-
- gpg.ssh.defaultKeyCommand
-
Dieser Befehl wird ausgeführt, wenn user.signingkey nicht gesetzt ist und eine SSH-Signatur angefordert wird. Bei erfolgreichem Beenden wird ein gültiger SSH-öffentlicher Schlüssel, der mit
key::beginnt, in der ersten Zeile seiner Ausgabe erwartet. Dies ermöglicht einem Skript die dynamische Suche nach dem richtigen öffentlichen Schlüssel, wenn eine statische Konfiguration vonuser.signingKeyunpraktisch ist. Zum Beispiel, wenn Schlüssel oder SSH-Zertifikate häufig rotiert werden oder die Auswahl des richtigen Schlüssels von externen Faktoren abhängt, die Git nicht bekannt sind. - gpg.ssh.allowedSignersFile
-
Eine Datei, die SSH-öffentliche Schlüssel enthält, denen Sie vertrauen möchten. Die Datei besteht aus einer oder mehreren Zeilen mit Prinzipalen gefolgt von einem SSH-öffentlichen Schlüssel. z. B.:
user1@example.com,user2@example.comssh-rsaAAAAX1...Details finden Sie unter ssh-keygen(1) "ALLOWED SIGNERS". Der Prinzipal wird nur zur Identifizierung des Schlüssels verwendet und ist bei der Überprüfung einer Signatur verfügbar.SSH hat kein Konzept von Vertrauensstufen wie GPG. Um zwischen gültigen und vertrauenswürdigen Signaturen unterscheiden zu können, wird die Vertrauensstufe einer Signaturprüfung auf
fullygesetzt, wenn der öffentliche Schlüssel in der allowedSignersFile vorhanden ist. Andernfalls ist die Vertrauensstufeundefinedund git verify-commit/tag schlägt fehl.Diese Datei kann auf einen Speicherort außerhalb des Repositories gesetzt werden, und jeder Entwickler pflegt seinen eigenen Vertrauensspeicher. Ein zentraler Repository-Server könnte diese Datei automatisch aus SSH-Schlüsseln mit Push-Zugriff generieren, um den Code dagegen zu überprüfen. In einer Unternehmensumgebung wird diese Datei wahrscheinlich an einem globalen Ort aus einer Automatisierung generiert, die bereits Entwickler-SSH-Schlüssel verwaltet.
Ein Repository, das nur signierte Commits zulässt, kann die Datei im Repository selbst speichern, indem es einen Pfad relativ zur obersten Ebene des Arbeitsverzeichnisses verwendet. Auf diese Weise können nur Committer mit einem bereits gültigen Schlüssel Schlüssel im Keyring hinzufügen oder ändern.
Seit OpensSSH 8.8 erlaubt diese Datei die Angabe einer Schlüssellebensdauer mit den Optionen valid-after und valid-before. Git markiert Signaturen als gültig, wenn der Signaturschlüssel zum Zeitpunkt der Erstellung der Signatur gültig war. Dies ermöglicht es Benutzern, einen Signaturschlüssel zu ändern, ohne alle zuvor erstellten Signaturen ungültig zu machen.
Die Verwendung eines SSH-CA-Schlüssels mit der Option cert-authority (siehe ssh-keygen(1) "CERTIFICATES") ist ebenfalls gültig.
- gpg.ssh.revocationFile
-
Entweder eine SSH-KRL oder eine Liste von widerrufenen öffentlichen Schlüsseln (ohne das Prinzipal-Präfix). Siehe ssh-keygen(1) für Details. Wenn ein öffentlicher Schlüssel in dieser Datei gefunden wird, wird er immer mit der Vertrauensstufe "never" behandelt und Signaturen werden als ungültig angezeigt.
- grep.lineNumber
-
Wenn auf true gesetzt, wird die Option
-nstandardmäßig aktiviert. - grep.column
-
Wenn auf true gesetzt, wird die Option
--columnstandardmäßig aktiviert. - grep.patternType
-
Legt das Standard-Matching-Verhalten fest. Die Verwendung eines Wertes von basic, extended, fixed oder perl aktiviert entsprechend die Option
--basic-regexp,--extended-regexp,--fixed-stringsoder--perl-regexp, während der Wert default die Optiongrep.extendedRegexpverwendet, um zwischen basic und extended zu wählen. - grep.extendedRegexp
-
Wenn auf true gesetzt, wird die Option
--extended-regexpstandardmäßig aktiviert. Diese Option wird ignoriert, wenn die Optiongrep.patternTypeauf einen anderen Wert als default gesetzt ist. - grep.threads
-
Anzahl der zu verwendenden Grep-Worker-Threads. Wenn nicht gesetzt (oder auf 0 gesetzt), verwendet Git so viele Threads wie die Anzahl der verfügbaren logischen Kerne.
- grep.fullName
-
Wenn auf true gesetzt, wird die Option
--full-namestandardmäßig aktiviert. - grep.fallbackToNoIndex
-
Wenn auf true gesetzt, wird auf
gitgrep--no-indexzurückgegriffen, wenngitgrepaußerhalb eines Git-Repositorys ausgeführt wird. Standard ist false. - gui.commitMsgWidth
-
Definiert die Breite des Commit-Nachrichtenfensters in git-gui[1]. "75" ist der Standard.
- gui.diffContext
-
Gibt an, wie viele Kontextzeilen bei Diff-Aufrufen von git-gui[1] verwendet werden sollen. Der Standardwert ist "5".
- gui.displayUntracked
-
Bestimmt, ob git-gui[1] nicht verfolgte Dateien in der Dateiliste anzeigt. Der Standardwert ist "true".
- gui.encoding
-
Gibt die Standardzeichenkodierung an, die zur Anzeige von Dateiinhalten in git-gui[1] und gitk[1] verwendet werden soll. Sie kann durch Setzen des encoding-Attributs für relevante Dateien (siehe gitattributes[5]) überschrieben werden. Wenn diese Option nicht gesetzt ist, verwenden die Werkzeuge standardmäßig die Locale-Kodierung.
- gui.matchTrackingBranch
-
Bestimmt, ob neu erstellte Branches mit git-gui[1] standardmäßig Remote-Branches mit übereinstimmenden Namen verfolgen oder nicht. Standard: "false".
- gui.newBranchTemplate
-
Wird als vorgeschlagener Name beim Erstellen neuer Branches mit git-gui[1] verwendet.
- gui.pruneDuringFetch
-
"true", wenn git-gui[1] Remote-Tracking-Branches beim Abrufen bereinigen soll. Der Standardwert ist "false".
- gui.trustmtime
-
Bestimmt, ob git-gui[1] den Änderungszeitstempel der Datei vertrauen soll oder nicht. Standardmäßig wird den Zeitstempeln nicht vertraut.
- gui.spellingDictionary
-
Gibt das Wörterbuch an, das für die Rechtschreibprüfung von Commit-Nachrichten in git-gui[1] verwendet wird. Wenn es auf "none" gesetzt ist, ist die Rechtschreibprüfung deaktiviert.
- gui.fastCopyBlame
-
Wenn true, verwendet git gui blame
-Canstelle von-C-Cfür die Erkennung des ursprünglichen Speicherorts. Dies macht Blame bei riesigen Repositories erheblich schneller, auf Kosten einer weniger gründlichen Kopiererkennung. - gui.copyBlameThreshold
-
Gibt den Schwellenwert für die Erkennung des ursprünglichen Speicherorts in git gui blame an, gemessen in alphanumerischen Zeichen. Weitere Informationen zur Kopiererkennung finden Sie im Handbuch zu git-blame[1].
- gui.blamehistoryctx
-
Gibt den Radius des Historienkontextes in Tagen an, der in gitk[1] für den ausgewählten Commit angezeigt wird, wenn der Menüpunkt
ShowHistoryContextaus git gui blame aufgerufen wird. Wenn diese Variable auf Null gesetzt ist, wird die gesamte Historie angezeigt. - guitool.<name>.cmd
-
Gibt die Shell-Befehlszeile an, die ausgeführt wird, wenn das entsprechende Element des git-gui[1]
Tools-Menüs aufgerufen wird. Diese Option ist für jedes Tool obligatorisch. Der Befehl wird vom Stammverzeichnis des Arbeitsverzeichnisses aus ausgeführt, und in der Umgebung werden ihm der Name des Tools alsGIT_GUITOOL, der Name der aktuell ausgewählten Datei als FILENAME und der Name des aktuellen Branches als CUR_BRANCH (wenn der Head gelöst ist, ist CUR_BRANCH leer) übergeben. - guitool.<name>.needsFile
-
Führt das Tool nur aus, wenn ein Diff in der GUI ausgewählt ist. Es garantiert, dass FILENAME nicht leer ist.
- guitool.<name>.noConsole
-
Führt den Befehl stillschweigend aus, ohne ein Fenster zu erstellen, um seine Ausgabe anzuzeigen.
- guitool.<name>.noRescan
-
Scannt das Arbeitsverzeichnis nach Änderungen nicht erneut, nachdem das Tool ausgeführt wurde.
- guitool.<name>.confirm
-
Zeigt einen Bestätigungsdialog an, bevor das Tool tatsächlich ausgeführt wird.
- guitool.<name>.argPrompt
-
Fordert einen String-Argument vom Benutzer an und übergibt ihn über die Umgebungsvariable
ARGSan das Tool. Da die Anforderung eines Arguments eine Bestätigung impliziert, hat die Option confirm keine Wirkung, wenn diese aktiviert ist. Wenn die Option auf true, yes oder 1 gesetzt ist, verwendet der Dialog eine integrierte generische Aufforderung; andernfalls wird der exakte Wert der Variablen verwendet. - guitool.<name>.revPrompt
-
Fordert eine einzelne gültige Revision vom Benutzer an und setzt die Umgebungsvariable
REVISION. In anderen Aspekten ist diese Option ähnlich wie argPrompt und kann zusammen mit ihr verwendet werden. - guitool.<name>.revUnmerged
-
Zeigt nur nicht zusammengeführte Branches im revPrompt-Unterdialog an. Dies ist nützlich für Tools, die ähnlich wie merge oder rebase funktionieren, aber nicht für Dinge wie checkout oder reset.
- guitool.<name>.title
-
Gibt den Titel an, der für den Aufforderungsdialog verwendet werden soll. Standard ist der Toolname.
- guitool.<name>.prompt
-
Gibt die allgemeine Aufforderungszeichenkette an, die oben im Dialog angezeigt wird, vor den Unterabschnitten für argPrompt und revPrompt. Der Standardwert enthält den eigentlichen Befehl.
- help.browser
-
Gibt den Browser an, der zur Anzeige von Hilfe im web-Format verwendet wird. Siehe git-help[1].
- help.format
-
Überschreibt das Standard-Hilfeformat, das von git-help[1] verwendet wird. Die Werte man, info, web und html werden unterstützt. man ist der Standard. web und html sind identisch.
- help.autoCorrect
-
Wenn Git Tippfehler erkennt und genau einen gültigen Befehl identifizieren kann, der dem Fehler ähnelt, versucht Git, den korrekten Befehl vorzuschlagen oder die vorgeschlagene Korrektur sogar automatisch auszuführen. Mögliche Konfigurationswerte sind:
-
0, "false", "off", "no", "show": zeigt den vorgeschlagenen Befehl an (Standard).
-
1, "true", "on", "yes", "immediate": führt den vorgeschlagenen Befehl sofort aus.
-
positive Zahl > 1: führt den vorgeschlagenen Befehl nach der angegebenen Anzahl von Dezisekunden (0,1 Sek.) aus.
-
"never": führt keinen vorgeschlagenen Befehl aus und zeigt ihn nicht an.
-
"prompt": zeigt die vorgeschlagene Korrektur an und fragt nach Bestätigung, um den Befehl auszuführen.
-
- help.htmlPath
-
Gibt den Pfad an, an dem die HTML-Dokumentation gespeichert ist. Dateisystempfade und URLs werden unterstützt. HTML-Seiten werden mit diesem Pfad präfixiert, wenn Hilfe im web-Format angezeigt wird. Dies ist standardmäßig der Dokumentationspfad Ihrer Git-Installation.
- http.proxy
-
Überschreibt den HTTP-Proxy, der normalerweise über die Umgebungsvariablen http_proxy, https_proxy und all_proxy konfiguriert wird (siehe
curl(1)). Zusätzlich zur von curl verstandenen Syntax ist es möglich, eine Proxy-Zeichenkette mit einem Benutzernamen, aber ohne Passwort anzugeben, in welchem Fall Git versuchen wird, einen auf die gleiche Weise wie für andere Anmeldeinformationen zu beschaffen. Siehe gitcredentials[7] für weitere Informationen. Die Syntax lautet daher [protocol://][user[:password]@]proxyhost[:port][/path]. Dies kann pro Remote-Verbindung überschrieben werden; siehe remote.<name>.proxy.Jeder Proxy, egal wie konfiguriert, muss vollständig transparent sein und darf die Anfrage oder Antwort in keiner Weise modifizieren, transformieren oder puffern. Proxies, die nicht vollständig transparent sind, verursachen bekanntermaßen verschiedene Arten von Problemen mit Git.
- http.proxyAuthMethod
-
Legt die Methode fest, mit der gegen den HTTP-Proxy authentifiziert wird. Dies wird nur wirksam, wenn die konfigurierte Proxy-Zeichenkette einen Benutzernamen enthält (d. h. die Form user@host oder user@host:port hat). Dies kann pro Remote-Verbindung überschrieben werden; siehe
remote.<name>.proxyAuthMethod. Beides kann durch die UmgebungsvariableGIT_HTTP_PROXY_AUTHMETHODüberschrieben werden. Mögliche Werte sind:-
anyauth- Automatische Auswahl einer geeigneten Authentifizierungsmethode. Es wird davon ausgegangen, dass der Proxy auf eine nicht authentifizierte Anfrage mit einem 407-Statuscode und einem oder mehreren Proxy-Authenticate-Headern mit unterstützten Authentifizierungsmethoden antwortet. Dies ist der Standard. -
basic- HTTP Basic-Authentifizierung -
digest- HTTP Digest-Authentifizierung; dies verhindert, dass das Passwort im Klartext an den Proxy übertragen wird -
negotiate- GSS-Negotiate-Authentifizierung (vergleiche die Option --negotiate voncurl(1)) -
ntlm- NTLM-Authentifizierung (vergleiche die Option --ntlm voncurl(1))
-
- http.proxySSLCert
-
Der Pfad zu einer Datei, die ein Client-Zertifikat zur Authentifizierung bei einem HTTPS-Proxy speichert. Kann durch die Umgebungsvariable
GIT_PROXY_SSL_CERTüberschrieben werden. - http.proxySSLKey
-
Der Pfad zu einer Datei, die einen privaten Schlüssel zur Authentifizierung bei einem HTTPS-Proxy speichert. Kann durch die Umgebungsvariable
GIT_PROXY_SSL_KEYüberschrieben werden. - http.proxySSLCertPasswordProtected
-
Aktiviert die Passwortabfrage von Git für das Proxy-SSL-Zertifikat. Andernfalls wird OpenSSL den Benutzer möglicherweise mehrmals auffordern, wenn das Zertifikat oder der private Schlüssel verschlüsselt ist. Kann durch die Umgebungsvariable
GIT_PROXY_SSL_CERT_PASSWORD_PROTECTEDüberschrieben werden. - http.proxySSLCAInfo
-
Pfad zu der Datei, die das Zertifikatspaket enthält, das zur Verifizierung des Proxys bei Verwendung eines HTTPS-Proxys verwendet werden soll. Kann durch die Umgebungsvariable
GIT_PROXY_SSL_CAINFOüberschrieben werden. - http.emptyAuth
-
Versucht die Authentifizierung, ohne nach einem Benutzernamen oder Passwort zu fragen. Dies kann verwendet werden, um GSS-Negotiate-Authentifizierung zu versuchen, ohne einen Benutzernamen in der URL anzugeben, da libcurl normalerweise einen Benutzernamen für die Authentifizierung benötigt.
- http.proactiveAuth
-
Versucht die Authentifizierung, ohne zuerst einen nicht authentifizierten Versuch zu unternehmen und eine 401-Antwort zu erhalten. Dies kann verwendet werden, um sicherzustellen, dass alle Anfragen authentifiziert werden. Wenn
http.emptyAuthauf true gesetzt ist, hat dieser Wert keine Auswirkung.Wenn der verwendete Credential Helper ein Authentifizierungsschema angibt (z. B. über das Feld
authtype), wird dieser Wert verwendet; wenn ein Benutzername und ein Passwort ohne Schema bereitgestellt werden, wird die Basic-Authentifizierung verwendet. Der Wert der Option bestimmt das vom Helper angeforderte Schema. Mögliche Werte sind:-
basic- Fordert Basic-Authentifizierung vom Helper an. -
auto- Erlaubt dem Helper, ein geeignetes Schema auszuwählen. -
none- Deaktiviert die proaktive Authentifizierung.
Beachten Sie, dass TLS immer mit dieser Konfiguration verwendet werden sollte, da es andernfalls leicht zu unbeabsichtigter Offenlegung von Klartext-Anmeldeinformationen kommen kann, wenn Basic-Authentifizierung ausgewählt ist.
-
- http.delegation
-
Steuert die GSSAPI-Anmeldeinformationsdelegation. Die Delegation ist in libcurl seit Version 7.21.7 standardmäßig deaktiviert. Setzen Sie den Parameter, um dem Server mitzuteilen, was er bei der Weitergabe von Benutzeranmeldeinformationen delegieren darf. Wird mit GSS/Kerberos verwendet. Mögliche Werte sind:
-
none- Keine Delegation zulassen. -
policy- Delegiert nur, wenn das Flag OK-AS-DELEGATE im Kerberos-Dienstticket gesetzt ist, was eine Frage der Realm-Richtlinie ist. -
always- Erlaubt dem Server bedingungslos, zu delegieren.
-
- http.extraHeader
-
Übergibt einen zusätzlichen HTTP-Header bei der Kommunikation mit einem Server. Wenn mehr als ein solcher Eintrag vorhanden ist, werden alle als zusätzliche Header hinzugefügt. Um die Überschreibung von aus der Systemkonfiguration übernommenen Einstellungen zu ermöglichen, setzt ein leerer Wert die zusätzlichen Header auf eine leere Liste.
- http.cookieFile
-
Der Pfad zu einer Datei, die zuvor gespeicherte Cookie-Zeilen enthält, die in der Git-HTTP-Sitzung verwendet werden sollen, wenn sie mit dem Server übereinstimmen. Das Dateiformat der zu lesenden Cookies sollte ein einfaches HTTP-Header-Format oder das Netscape/Mozilla-Cookie-Dateiformat sein (siehe
curl(1)). Setzen Sie es auf eine leere Zeichenkette, um nur neue Cookies vom Server zu akzeptieren und sie in nachfolgenden Anfragen innerhalb derselben Verbindung zurückzusenden. BEACHTEN SIE, dass die mit http.cookieFile angegebene Datei nur als Eingabe verwendet wird, es sei denn, http.saveCookies ist gesetzt. - http.saveCookies
-
Wenn gesetzt, werden während der Anfragen empfangene Cookies in der von http.cookieFile angegebenen Datei gespeichert. Hat keine Auswirkung, wenn http.cookieFile nicht gesetzt oder auf eine leere Zeichenkette gesetzt ist.
- http.version
-
Verwenden Sie die angegebene HTTP-Protokollversion, wenn Sie mit einem Server kommunizieren. Wenn Sie die Standardeinstellung erzwingen möchten. Die verfügbare und Standardversion hängt von libcurl ab. Derzeit sind die möglichen Werte für diese Option
-
HTTP/2
-
HTTP/1.1
-
- http.curloptResolve
-
Hostname-Auflösungsinformationen, die von libcurl zuerst beim Senden von HTTP-Anfragen verwendet werden. Diese Informationen sollten in einem der folgenden Formate vorliegen
-
[+]HOST:PORT:ADDRESS[,ADDRESS]
-
-HOST:PORT
Das erste Format leitet alle Anfragen an den angegebenen
HOST:PORTan die bereitgestelltenADDRESS(en) um. Das zweite Format löscht alle vorherigen Konfigurationswerte für dieseHOST:PORT-Kombination. Um eine einfache Überschreibung aller von der Systemkonfiguration übernommenen Einstellungen zu ermöglichen, wird ein leerer Wert alle Auflösungsinformationen auf eine leere Liste zurücksetzen. -
- http.sslVersion
-
Die SSL-Version, die bei der Aushandlung einer SSL-Verbindung verwendet werden soll, wenn Sie die Standardeinstellung erzwingen möchten. Die verfügbare und Standardversion hängt davon ab, ob libcurl gegen NSS oder OpenSSL kompiliert wurde und von der spezifischen Konfiguration der verwendeten Krypto-Bibliothek. Intern wird die Option CURLOPT_SSL_VERSION gesetzt. Weitere Details zum Format dieser Option und zu den unterstützten SSL-Versionen finden Sie in der libcurl-Dokumentation. Derzeit sind die möglichen Werte für diese Option
-
sslv2
-
sslv3
-
tlsv1
-
tlsv1.0
-
tlsv1.1
-
tlsv1.2
-
tlsv1.3
Kann durch die Umgebungsvariable
GIT_SSL_VERSIONüberschrieben werden. Um Git zu zwingen, die Standard-SSL-Version von libcurl zu verwenden und jede explizite http.sslversion-Option zu ignorieren, setzen SieGIT_SSL_VERSIONauf einen leeren String. -
- http.sslCipherList
-
Eine Liste von SSL-Chiffren, die bei der Aushandlung einer SSL-Verbindung verwendet werden sollen. Die verfügbaren Chiffren hängen davon ab, ob libcurl gegen NSS oder OpenSSL kompiliert wurde und von der spezifischen Konfiguration der verwendeten Krypto-Bibliothek. Intern wird die Option CURLOPT_SSL_CIPHER_LIST gesetzt. Weitere Details zum Format dieser Liste finden Sie in der libcurl-Dokumentation.
Kann durch die Umgebungsvariable
GIT_SSL_CIPHER_LISTüberschrieben werden. Um Git zu zwingen, die Standard-Chiffrenliste von libcurl zu verwenden und jede explizite http.sslCipherList-Option zu ignorieren, setzen SieGIT_SSL_CIPHER_LISTauf einen leeren String. - http.sslVerify
-
Ob das SSL-Zertifikat beim Abrufen oder Pushen über HTTPS verifiziert werden soll. Standardmäßig ist dies auf true gesetzt. Kann durch die Umgebungsvariable
GIT_SSL_NO_VERIFYüberschrieben werden. - http.sslCert
-
Datei mit dem SSL-Zertifikat beim Abrufen oder Pushen über HTTPS. Kann durch die Umgebungsvariable
GIT_SSL_CERTüberschrieben werden. - http.sslKey
-
Datei mit dem privaten SSL-Schlüssel beim Abrufen oder Pushen über HTTPS. Kann durch die Umgebungsvariable
GIT_SSL_KEYüberschrieben werden. - http.sslCertPasswordProtected
-
Aktiviert die Passwortabfrage von Git für das SSL-Zertifikat. Andernfalls fordert OpenSSL den Benutzer auf, möglicherweise mehrmals, wenn das Zertifikat oder der private Schlüssel verschlüsselt ist. Kann durch die Umgebungsvariable
GIT_SSL_CERT_PASSWORD_PROTECTEDüberschrieben werden. - http.sslCAInfo
-
Datei mit den Zertifikaten zur Überprüfung des Peers beim Abrufen oder Pushen über HTTPS. Kann durch die Umgebungsvariable
GIT_SSL_CAINFOüberschrieben werden. - http.sslCAPath
-
Pfad mit Dateien mit den CA-Zertifikaten zur Überprüfung des Peers beim Abrufen oder Pushen über HTTPS. Kann durch die Umgebungsvariable
GIT_SSL_CAPATHüberschrieben werden. - http.sslBackend
-
Name des zu verwendenden SSL-Backends (z. B. "openssl" oder "schannel"). Diese Option wird ignoriert, wenn cURL keine Unterstützung für die Auswahl des SSL-Backends zur Laufzeit hat.
- http.sslCertType
-
Typ des Client-Zertifikats, das beim Abrufen oder Pushen über HTTPS verwendet wird. "PEM", "DER" werden bei Verwendung von OpenSSL- oder GnuTLS-Backends unterstützt. "P12" wird für "openssl", "schannel", "securetransport" und GnuTLS 8.11+ unterstützt. Siehe auch libcurl
CURLOPT_SSLCERTTYPE. Kann durch die UmgebungsvariableGIT_SSL_CERT_TYPEüberschrieben werden. - http.sslKeyType
-
Typ des privaten Client-Schlüssels, der beim Abrufen oder Pushen über HTTPS verwendet wird. (z. B. "PEM", "DER" oder "ENG"). Nur anwendbar, wenn das "openssl"-Backend verwendet wird. "DER" wird mit OpenSSL nicht unterstützt. Besonders nützlich, wenn auf "ENG" gesetzt für die Authentifizierung mit PKCS#11-Tokens, mit einer PKCS#11-URL in der sslCert-Option. Siehe auch libcurl
CURLOPT_SSLKEYTYPE. Kann durch die UmgebungsvariableGIT_SSL_KEY_TYPEüberschrieben werden. - http.schannelCheckRevoke
-
Wird verwendet, um Zertifikatswiderrufsprüfungen in cURL zu erzwingen oder zu deaktivieren, wenn http.sslBackend auf "schannel" gesetzt ist. Standardmäßig
true, wenn nicht gesetzt. Nur notwendig, dies zu deaktivieren, wenn Git durchweg Fehler ausgibt und die Meldung über die Überprüfung des Widerrufsstatus eines Zertifikats lautet. Diese Option wird ignoriert, wenn cURL keine Unterstützung für die Laufzeitkonfiguration der entsprechenden SSL-Option hat. - http.schannelUseSSLCAInfo
-
Ab cURL v7.60.0 kann das Secure Channel-Backend das über
http.sslCAInfobereitgestellte Zertifikatspaket verwenden, aber das würde den Windows-Zertifikatsspeicher überschreiben. Da dies standardmäßig nicht wünschenswert ist, teilt Git cURL mit, dieses Paket nicht standardmäßig zu verwenden, wenn dasschannel-Backend überhttp.sslBackendkonfiguriert wurde, es sei denn,http.schannelUseSSLCAInfoüberschreibt dieses Verhalten. - http.pinnedPubkey
-
Öffentlicher Schlüssel des HTTPS-Dienstes. Dies kann entweder der Dateiname eines PEM- oder DER-kodierten öffentlichen Schlüssels sein oder ein String, der mit sha256// beginnt, gefolgt vom Base64-kodierten SHA256-Hash des öffentlichen Schlüssels. Siehe auch libcurl CURLOPT_PINNEDPUBLICKEY. Git wird mit einem Fehler beendet, wenn diese Option gesetzt ist, aber von cURL nicht unterstützt wird.
- http.sslTry
-
Versucht, AUTH SSL/TLS und verschlüsselte Datentransfers zu verwenden, wenn über das normale FTP-Protokoll verbunden wird. Dies kann erforderlich sein, wenn der FTP-Server dies aus Sicherheitsgründen verlangt oder wenn Sie eine sichere Verbindung herstellen möchten, wann immer der entfernte FTP-Server dies unterstützt. Standardmäßig ist dies falsch, da es bei falsch konfigurierten Servern zu Zertifikatverifizierungsfehlern führen kann.
- http.maxRequests
-
Wie viele HTTP-Anfragen parallel gestartet werden sollen. Kann durch die Umgebungsvariable
GIT_HTTP_MAX_REQUESTSüberschrieben werden. Standard ist 5. - http.minSessions
-
Die Anzahl der Curl-Sitzungen (über Slots gezählt), die über Anfragen hinweg beibehalten werden sollen. Sie werden nicht mit curl_easy_cleanup() beendet, bis http_cleanup() aufgerufen wird. Wenn USE_CURL_MULTI nicht definiert ist, wird dieser Wert auf 1 begrenzt. Standard ist 1.
- http.postBuffer
-
Maximale Größe in Bytes des Puffers, der von Smart-HTTP-Transports verwendet wird, wenn Daten per POST an das entfernte System gesendet werden. Für Anfragen, die größer als diese Puffergröße sind, werden HTTP/1.1 und Transfer-Encoding: chunked verwendet, um die Erstellung einer massiven Pack-Datei lokal zu vermeiden. Standard ist 1 MiB, was für die meisten Anfragen ausreichend ist.
Beachten Sie, dass die Erhöhung dieses Limits nur wirksam ist, um die Chunked-Transfer-Codierung zu deaktivieren, und daher nur dort verwendet werden sollte, wo der entfernte Server oder ein Proxy nur HTTP/1.0 unterstützt oder nicht konform mit dem HTTP-Standard ist. Die Erhöhung ist im Allgemeinen keine effektive Lösung für die meisten Push-Probleme, kann jedoch die Speichernutzung erheblich erhöhen, da der gesamte Puffer auch für kleine Pushes zugewiesen wird.
- http.lowSpeedLimit
- http.lowSpeedTime
-
Wenn die HTTP-Übertragungsgeschwindigkeit in Bytes pro Sekunde länger als http.lowSpeedTime Sekunden niedriger als http.lowSpeedLimit ist, wird die Übertragung abgebrochen. Kann durch die Umgebungsvariablen
GIT_HTTP_LOW_SPEED_LIMITundGIT_HTTP_LOW_SPEED_TIMEüberschrieben werden. - http.keepAliveIdle
-
Gibt an, wie lange in Sekunden auf eine ruhende Verbindung gewartet werden soll, bevor TCP Keepalive-Sonden gesendet werden (falls vom Betriebssystem unterstützt). Wenn nicht gesetzt, wird der Standardwert von curl verwendet. Kann durch die Umgebungsvariable
GIT_HTTP_KEEPALIVE_IDLEüberschrieben werden. - http.keepAliveInterval
-
Gibt an, wie lange in Sekunden zwischen TCP Keepalive-Sonden gewartet werden soll (falls vom Betriebssystem unterstützt). Wenn nicht gesetzt, wird der Standardwert von curl verwendet. Kann durch die Umgebungsvariable
GIT_HTTP_KEEPALIVE_INTERVALüberschrieben werden. - http.keepAliveCount
-
Gibt an, wie viele TCP Keepalive-Sonden gesendet werden sollen, bevor aufgegeben und die Verbindung beendet wird (falls vom Betriebssystem unterstützt). Wenn nicht gesetzt, wird der Standardwert von curl verwendet. Kann durch die Umgebungsvariable
GIT_HTTP_KEEPALIVE_COUNTüberschrieben werden. - http.noEPSV
-
Ein boolescher Wert, der die Verwendung des EPSV-FTP-Befehls durch curl deaktiviert. Dies kann bei einigen "schlechten" FTP-Servern hilfreich sein, die den EPSV-Modus nicht unterstützen. Kann durch die Umgebungsvariable
GIT_CURL_FTP_NO_EPSVüberschrieben werden. Standard ist false (curl wird EPSV verwenden). - http.userAgent
-
Der HTTP USER_AGENT-String, der einem HTTP-Server präsentiert wird. Der Standardwert repräsentiert die Version des Git-Clients, z. B. git/1.7.1. Diese Option ermöglicht es Ihnen, diesen Wert durch einen gebräuchlicheren Wert wie Mozilla/4.0 zu überschreiben. Dies kann beispielsweise notwendig sein, wenn Sie über eine Firewall verbunden sind, die HTTP-Verbindungen auf eine Reihe gängiger USER_AGENT-Strings beschränkt (aber keine wie git/1.7.1 einschließt). Kann durch die Umgebungsvariable
GIT_HTTP_USER_AGENTüberschrieben werden. - http.followRedirects
-
Ob Git HTTP-Weiterleitungen folgen soll. Wenn auf
truegesetzt, folgt Git transparent jeder Weiterleitung, die von einem angetroffenen Server ausgegeben wird. Wenn auffalsegesetzt, behandelt Git alle Weiterleitungen als Fehler. Wenn aufinitialgesetzt, folgt Git Weiterleitungen nur für die anfängliche Anfrage an einen Remote, aber nicht für nachfolgende HTTP-Anfragen. Da Git die weitergeleitete URL als Basis für die Folgeanfragen verwendet, ist dies im Allgemeinen ausreichend. Der Standard istinitial. - http.<url>.*
-
Beliebige der obigen http.*-Optionen können selektiv auf bestimmte URLs angewendet werden. Damit ein Konfigurationsschlüssel mit einer URL übereinstimmt, wird jedes Element des Konfigurationsschlüssels mit dem der URL verglichen, in der folgenden Reihenfolge
-
Schema (z. B.
httpsinhttps://example.com/). Dieses Feld muss exakt zwischen dem Konfigurationsschlüssel und der URL übereinstimmen. -
Host-/Domainname (z. B.
example.cominhttps://example.com/). Dieses Feld muss zwischen dem Konfigurationsschlüssel und der URL übereinstimmen. Es ist möglich, ein*als Teil des Hostnamens anzugeben, um alle Subdomains auf dieser Ebene abzugleichen.https://*.example.com/würde zum Beispielhttps://foo.example.com/abgleichen, aber nichthttps://foo.bar.example.com/. -
Portnummer (z. B.
8080inhttp://example.com:8080/). Dieses Feld muss exakt zwischen dem Konfigurationsschlüssel und der URL übereinstimmen. Fehlende Portnummern werden automatisch in die korrekte Standardeinstellung für das Schema umgewandelt, bevor der Abgleich erfolgt. -
Pfad (z. B.
repo.gitinhttps://example.com/repo.git). Das Pfadfeld des Konfigurationsschlüssels muss dem Pfadfeld der URL entweder exakt oder als Präfix von schrägstrichgetrennten Pfadelementen entsprechen. Das bedeutet, dass ein Konfigurationsschlüssel mit dem Pfadfoo/mit dem URL-Pfadfoo/barübereinstimmt. Ein Präfix kann nur an einer Schrägstrichgrenze (/) übereinstimmen. Längere Übereinstimmungen haben Vorrang (daher ist ein Konfigurationsschlüssel mit dem Pfadfoo/bareine bessere Übereinstimmung mit dem URL-Pfadfoo/barals ein Konfigurationsschlüssel nur mit dem Pfadfoo/). -
Benutzername (z. B.
userinhttps://user@example.com/repo.git). Wenn der Konfigurationsschlüssel einen Benutzernamen hat, muss dieser mit dem Benutzernamen in der URL exakt übereinstimmen. Wenn der Konfigurationsschlüssel keinen Benutzernamen hat, stimmt dieser Konfigurationsschlüssel mit einer URL mit beliebigem Benutzernamen (auch keinem) überein, jedoch mit geringerer Priorität als ein Konfigurationsschlüssel mit einem Benutzernamen.
Die obige Liste ist nach absteigender Priorität geordnet; eine URL, die mit dem Pfad eines Konfigurationsschlüssels übereinstimmt, wird gegenüber einer bevorzugt, die mit seinem Benutzernamen übereinstimmt. Zum Beispiel, wenn die URL
https://user@example.com/foo/barlautet, wird eine Übereinstimmung mit dem Konfigurationsschlüsselhttps://example.com/foogegenüber einer Übereinstimmung mit dem Konfigurationsschlüsselhttps://user@example.combevorzugt.Alle URLs werden vor dem Abgleich normalisiert (der Passwortteil, falls in der URL eingebettet, wird für den Abgleich immer ignoriert), sodass äquivalente URLs, die einfach anders geschrieben sind, korrekt übereinstimmen. Umgebungsvariablen haben immer Vorrang vor allen Übereinstimmungen. Die URLs, mit denen abgeglichen wird, sind diejenigen, die direkt an Git-Befehle übergeben werden. Das bedeutet, dass URLs, die als Ergebnis einer Weiterleitung besucht werden, nicht am Abgleich teilnehmen.
-
- i18n.commitEncoding
-
Zeichenkodierung, in der Commit-Nachrichten gespeichert werden; Git selbst kümmert sich nicht darum, aber diese Information ist z. B. beim Importieren von Commits aus E-Mails oder im grafischen Verlaufsbrowser gitk (und möglicherweise an anderen Stellen in Zukunft oder in anderen Porzellansorten) notwendig. Siehe z. B. git-mailinfo[1]. Standard ist utf-8.
- i18n.logOutputEncoding
-
Zeichenkodierung, in die Commit-Nachrichten bei Ausführung von git log und ähnlichen Befehlen konvertiert werden.
- imap.folder
-
Der Ordner, in den die E-Mails abgelegt werden sollen, typischerweise der Ordner Entwürfe. Zum Beispiel:
INBOX.Drafts,INBOX/Draftsoder [Gmail]/Drafts. Der IMAP-Ordner, mit dem interagiert werden soll, MUSS angegeben werden; der Wert dieser Konfigurationsvariablen wird als Standard-Fallback-Wert verwendet, wenn die Option--foldernicht angegeben wird. - imap.tunnel
-
Befehl zur Einrichtung eines Tunnels zum IMAP-Server, über den Befehle anstelle einer direkten Netzwerkverbindung zum Server geleitet werden. Erforderlich, wenn imap.host nicht gesetzt ist.
- imap.host
-
Eine URL, die den Server identifiziert. Verwenden Sie ein
imap://-Präfix für ungesicherte Verbindungen und einimaps://-Präfix für gesicherte Verbindungen. Wird ignoriert, wenn imap.tunnel gesetzt ist, ist aber andernfalls erforderlich. - imap.user
-
Der Benutzername, der bei der Anmeldung am Server verwendet werden soll.
- imap.pass
-
Das Passwort, das bei der Anmeldung am Server verwendet werden soll.
- imap.port
-
Eine Ganzzahl-Portnummer, zu der auf dem Server verbunden werden soll. Standard ist 143 für imap://-Hosts und 993 für imaps://-Hosts. Wird ignoriert, wenn imap.tunnel gesetzt ist.
- imap.sslverify
-
Ein boolescher Wert, um die Verifizierung des Serverzertifikats für die SSL/TLS-Verbindung zu aktivieren/deaktivieren. Standard ist
true. Wird ignoriert, wenn imap.tunnel gesetzt ist. - imap.preformattedHTML
-
Ein boolescher Wert, um die Verwendung von HTML-Kodierung beim Senden eines Patches zu aktivieren/deaktivieren. Ein HTML-kodierter Patch wird mit <pre> umschlossen und hat einen Content-Type von text/html. Ironischerweise führt die Aktivierung dieser Option dazu, dass Thunderbird den Patch als E-Mail vom Typ plain/text, format=fixed sendet. Standard ist
false. - imap.authMethod
-
Gibt die Authentifizierungsmethode zur Authentifizierung beim IMAP-Server an. Wenn Git mit der Option NO_CURL kompiliert wurde oder wenn Ihre Curl-Version älter als 7.34.0 ist oder wenn Sie git-imap-send mit der Option
--no-curlausführen, sind die einzigen unterstützten MethodenPLAIN,CRAM-MD5,OAUTHBEARERundXOAUTH2. Wenn dies nicht gesetzt ist, verwendetgitimap-sendden grundlegenden IMAP-Plaintext-BefehlLOGIN. - include.path
- includeIf.<condition>.path
-
Spezielle Variablen zum Einbinden anderer Konfigurationsdateien. Siehe den Abschnitt "CONFIGURATION FILE" in der Hauptdokumentation von git-config[1], insbesondere die Unterabschnitte "Includes" und "Conditional Includes".
- index.recordEndOfIndexEntries
-
Gibt an, ob die Indexdatei einen Abschnitt "End Of Index Entry" enthalten soll. Dies reduziert die Ladezeit des Index auf Mehrprozessormaschinen, erzeugt aber beim Lesen des Index mit Git-Versionen vor 2.20 die Meldung "ignoring EOIE extension". Standardmäßig true, wenn index.threads explizit aktiviert wurde, andernfalls false.
- index.recordOffsetTable
-
Gibt an, ob die Indexdatei einen Abschnitt "Index Entry Offset Table" enthalten soll. Dies reduziert die Ladezeit des Index auf Mehrprozessormaschinen, erzeugt aber beim Lesen des Index mit Git-Versionen vor 2.20 die Meldung "ignoring IEOT extension". Standardmäßig true, wenn index.threads explizit aktiviert wurde, andernfalls false.
- index.sparse
-
Wenn aktiviert, wird der Index mit Sparse-Directory-Einträgen geschrieben. Dies hat keine Auswirkungen, es sei denn,
core.sparseCheckoutundcore.sparseCheckoutConesind beide aktiviert. Standard ist false. - index.threads
-
Gibt die Anzahl der Threads an, die beim Laden des Index gestartet werden sollen. Dies soll die Ladezeit des Index auf Mehrprozessormaschinen reduzieren. Die Angabe von 0 oder true führt dazu, dass Git die Anzahl der CPUs automatisch erkennt und die Anzahl der Threads entsprechend einstellt. Die Angabe von 1 oder false deaktiviert die Multithreading-Unterstützung. Standard ist true.
- index.version
-
Gibt die Version an, mit der neue Indexdateien initialisiert werden sollen. Dies hat keine Auswirkungen auf bestehende Repositories. Wenn
feature.manyFilesaktiviert ist, ist der Standardwert 4. - index.skipHash
-
Wenn aktiviert, wird der abschließende Hash für die Indexdatei nicht berechnet. Dies beschleunigt Git-Befehle, die den Index manipulieren, wie z. B.
gitadd,gitcommitodergitstatus. Anstatt die Prüfsumme zu speichern, werden abschließend Bytes mit dem Wert Null geschrieben, was anzeigt, dass die Berechnung übersprungen wurde.Wenn Sie
index.skipHashaktivieren, weigern sich Git-Clients, die älter als 2.13.0 sind, den Index zu parsen, und Git-Clients, die älter als 2.40.0 sind, melden einen Fehler währendgitfsck.
init.templateDir-
Gibt das Verzeichnis an, aus dem Vorlagen kopiert werden. (Siehe Abschnitt "TEMPLATE DIRECTORY" von git-init[1].)
init.defaultBranch-
Ermöglicht die Überschreibung des Standardzweignamens, z. B. beim Initialisieren eines neuen Repositorys.
init.defaultObjectFormat-
Ermöglicht die Überschreibung des Standard-Objektformats für neue Repositories. Siehe
--object-format=in git-init[1]. Sowohl die Befehlszeilenoption als auch die UmgebungsvariableGIT_DEFAULT_HASHhaben Vorrang vor dieser Konfiguration. init.defaultRefFormat-
Ermöglicht die Überschreibung des Standard-Ref-Speicherformats für neue Repositories. Siehe
--ref-format=in git-init[1]. Sowohl die Befehlszeilenoption als auch die UmgebungsvariableGIT_DEFAULT_REF_FORMAThaben Vorrang vor dieser Konfiguration. - instaweb.browser
-
Gibt das Programm an, das zum Durchsuchen Ihres Arbeitsverzeichnisses in Gitweb verwendet wird. Siehe git-instaweb[1].
- instaweb.httpd
-
Die HTTP-Daemon-Befehlszeile zum Starten von Gitweb in Ihrem Arbeitsverzeichnis. Siehe git-instaweb[1].
- instaweb.local
-
Wenn true, wird der von git-instaweb[1] gestartete Webserver an die lokale IP (127.0.0.1) gebunden.
- instaweb.modulePath
-
Der Standardmodulpfad für git-instaweb[1] anstelle von /usr/lib/apache2/modules. Wird nur verwendet, wenn httpd Apache ist.
- instaweb.port
-
Die Portnummer, an die der Gitweb-HTTPd gebunden werden soll. Siehe git-instaweb[1].
- interactive.singleKey
-
Wenn auf true gesetzt, kann der Benutzer in interaktiven Befehlen eine Eingabe mit einem einzigen Buchstaben (d. h. ohne die Eingabetaste zu drücken) vornehmen. Dies wird derzeit vom
--patch-Modus von git-add[1], git-checkout[1], git-restore[1], git-commit[1], git-reset[1] und git-stash[1] verwendet. - interactive.diffFilter
-
Wenn ein interaktiver Befehl (wie z. B.
gitadd--patch) einen farbigen Diff anzeigt, wird Git den Diff durch den mit dieser Konfigurationsvariable definierten Shell-Befehl leiten. Der Befehl kann den Diff weiter für menschliche Lesbarkeit aufbereiten, vorausgesetzt, er behält eine Eins-zu-Eins-Entsprechung mit den Zeilen des ursprünglichen Diffs bei. Standardmäßig deaktiviert (keine Filterung). log.abbrevCommit-
Wenn
true, gehen git-log[1], git-show[1] und git-whatchanged[1] davon aus, dass--abbrev-commitverwendet wird. Sie können diese Option mit--no-abbrev-commitüberschreiben. log.date-
Legt den Standard-Datums-/Zeitmodus für den Befehl
logfest. Das Setzen eines Werts für log.date ist ähnlich der Verwendung der Option--datevongitlog. Einzelheiten finden Sie in git-log[1].Wenn das Format auf "auto:foo" gesetzt ist und der Pager verwendet wird, wird das Format "foo" für das Datumsformat verwendet. Andernfalls wird "default" verwendet.
log.decorate-
Gibt die Referenznamen aller Commits aus, die vom Log-Befehl angezeigt werden. Mögliche Werte sind
short-
die Referenznamenspräfixe
refs/heads/,refs/tags/undrefs/remotes/werden nicht gedruckt. full-
der vollständige Referenzname (einschließlich Präfix) wird gedruckt.
auto-
Wenn die Ausgabe an ein Terminal geht, werden die Referenznamen so angezeigt, als wäre
shortangegeben, andernfalls werden keine Referenznamen angezeigt.
Dies ist dasselbe wie die Option
--decoratevongitlog. log.initialDecorationSet-
Standardmäßig zeigt
gitlognur Dekorationen für bestimmte bekannte Referenz-Namespaces an. Wenn all angegeben ist, werden alle Referenzen als Dekorationen angezeigt. log.excludeDecoration-
Schließt die angegebenen Muster von den Log-Dekorationen aus. Dies ähnelt der Befehlszeilenoption
--decorate-refs-exclude, aber die Konfigurationsoption kann durch die Option--decorate-refsüberschrieben werden. log.diffMerges-
Setzt das Diff-Format, das verwendet wird, wenn
--diff-merges=onangegeben ist. Siehe--diff-mergesin git-log[1] für Details. Standard istseparate. log.follow-
Wenn
true, verhält sichgitlogso, als wäre die Option--followverwendet worden, wenn ein einzelner <path> angegeben ist. Dies hat die gleichen Einschränkungen wie--follow, d. h. es kann nicht zum Verfolgen mehrerer Dateien verwendet werden und funktioniert nicht gut bei nicht-linearem Verlauf. log.graphColors-
Eine durch Kommas getrennte Liste von Farben, die zum Zeichnen von Verlaufslinien in
gitlog--graphverwendet werden können. log.showRoot-
Wenn true, wird der erste Commit als großes Erstellungsereignis angezeigt. Dies entspricht einem Diff gegen einen leeren Baum. Werkzeuge wie git-log[1] oder git-whatchanged[1], die normalerweise den Root-Commit ausblenden, werden ihn nun anzeigen. Standardmäßig true.
log.showSignature-
Wenn true, gehen git-log[1], git-show[1] und git-whatchanged[1] davon aus, dass
--show-signatureverwendet wird. log.mailmap-
Wenn true, gehen git-log[1], git-show[1] und git-whatchanged[1] davon aus, dass
--use-mailmapverwendet wird, andernfalls gehen sie von--no-use-mailmapaus. Standardmäßig true. - lsrefs.unborn
-
Kann "advertise" (Standard), "allow" oder "ignore" sein. Wenn "advertise", antwortet der Server auf das Senden von "unborn" durch den Client (wie in gitprotocol-v2[5] beschrieben) und gibt die Unterstützung für diese Funktion während der Fähigkeitsanzeige von Protokoll v2 bekannt. "allow" ist dasselbe wie "advertise", mit der Ausnahme, dass der Server die Unterstützung für diese Funktion nicht bekannt gibt; dies ist nützlich für Last-verteilte Server, die nicht atomar aktualisiert werden können (zum Beispiel), da der Administrator "allow" konfigurieren und nach einer Verzögerung "advertise" konfigurieren könnte.
- mailinfo.scissors
-
Wenn true, verhält sich git-mailinfo[1] (und damit git-am[1]) standardmäßig so, als ob die Option --scissors auf der Befehlszeile angegeben worden wäre. Wenn aktiv, entfernt diese Funktion alles aus dem Nachrichtentext vor einer Scherenschnittlinie (d. h. hauptsächlich aus ">8", "8<" und "-").
- mailmap.file
-
Der Speicherort einer zusätzlichen Mailmap-Datei. Die Standard-Mailmap, die sich im Stammverzeichnis des Repositories befindet, wird zuerst geladen, dann die von dieser Variablen angegebene Mailmap-Datei. Der Speicherort der Mailmap-Datei kann sich in einem Unterverzeichnis des Repositories oder außerhalb des Repositories befinden. Siehe git-shortlog[1] und git-blame[1].
- mailmap.blob
-
Wie
mailmap.file, aber betrachtet den Wert als Referenz auf einen Blob im Repository. Wenn sowohlmailmap.fileals auchmailmap.blobangegeben sind, werden beide geparst, wobei Einträge ausmailmap.fileVorrang haben. In einem Bare-Repository ist der StandardwertHEAD:.mailmap. In einem nicht-Bare-Repository ist der Standardwert leer. - maintenance.auto
-
Diese boolesche Konfigurationsoption steuert, ob einige Befehle
gitmaintenancerun--autoausführen, nachdem sie ihre normale Arbeit erledigt haben. Standard ist true. - maintenance.autoDetach
-
Viele Git-Befehle lösen nach dem Schreiben von Daten in das Repository eine automatische Wartung aus. Diese boolesche Konfigurationsoption steuert, ob diese automatische Wartung im Vordergrund stattfindet oder ob der Wartungsprozess abgekoppelt wird und im Hintergrund weiterläuft.
Wenn nicht gesetzt, wird der Wert von
gc.autoDetachals Fallback verwendet. Standard ist true, wenn beide nicht gesetzt sind, d. h. der Wartungsprozess wird abgekoppelt. - maintenance.strategy
-
Diese String-Konfigurationsoption bietet eine Möglichkeit, eine von mehreren empfohlenen Strategien für die Repository-Wartung anzugeben. Dies beeinflusst, welche Aufgaben während
gitmaintenancerunausgeführt werden, sofern keine--task=<task>-Argumente angegeben werden. Diese Einstellung wirkt sich auf manuelle, automatische und geplante Wartung aus. Die auszuführenden Aufgaben können je nach Wartungstyp unterschiedlich sein.Die Wartungsstrategie kann durch Setzen von
maintenance.<task>.enabledundmaintenance.<task>.scheduleweiter verfeinert werden. Wenn diese gesetzt sind, werden diese Werte anstelle der vonmaintenance.strategybereitgestellten Standardwerte verwendet.Die möglichen Strategien sind
-
none: Diese Strategie bedeutet, dass überhaupt keine Aufgaben ausgeführt werden. Dies ist die Standardstrategie für geplante Wartung. -
gc: Diese Strategie führt diegc-Aufgabe aus. Dies ist die Standardstrategie für manuelle Wartung. -
geometric: Diese Strategie führt geometrisches Repacking von Packfiles durch und hält Hilfsdatenstrukturen auf dem neuesten Stand. Die Strategie löscht Daten im Reflog und entfernt Worktrees, die nicht mehr gefunden werden können. Wenn die geometrische Repacking-Strategie entscheiden würde, ein All-into-One-Repack durchzuführen, generiert die Strategie ein Cruft-Pack für alle unerreichbaren Objekte. Objekte, die bereits Teil eines Cruft-Packs sind, werden gelöscht.Diese Repacking-Strategie ist ein vollständiger Ersatz für die
gc-Strategie und wird für große Repositories empfohlen. -
incremental: Diese Einstellung optimiert für die Durchführung kleiner Wartungsaktivitäten, die keine Daten löschen. Sie plant nicht diegc-Aufgabe, führt aber stündlich die Aufgabenprefetchundcommit-graphaus, täglich die Aufgabenloose-objectsundincremental-repackund wöchentlich die Aufgabepack-refs. Manuelle Repository-Wartung verwendet diegc-Aufgabe.
-
- maintenance.<task>.enabled
-
Diese boolesche Konfigurationsoption steuert, ob die Wartungsaufgabe mit dem Namen <task> ausgeführt wird, wenn keine
--task-Option angitmaintenancerunübergeben wird. Diese Konfigurationswerte werden ignoriert, wenn eine--task-Option vorhanden ist. Standardmäßig ist nurmaintenance.gc.enabledtrue. - maintenance.<task>.schedule
-
Diese Konfigurationsoption steuert, ob die gegebene <task> während eines
gitmaintenancerun--schedule=<frequency>-Befehls ausgeführt wird oder nicht. Der Wert muss "hourly", "daily" oder "weekly" sein. - maintenance.commit-graph.auto
-
Diese Ganzzahl-Konfigurationsoption steuert, wie oft die
commit-graph-Aufgabe als Teil vongitmaintenancerun--autoausgeführt werden soll. Wenn sie Null ist, wird diecommit-graph-Aufgabe nicht mit der--auto-Option ausgeführt. Ein negativer Wert zwingt die Aufgabe, jedes Mal ausgeführt zu werden. Andernfalls impliziert ein positiver Wert, dass der Befehl ausgeführt werden soll, wenn die Anzahl der erreichbaren Commits, die nicht in der Commit-Graph-Datei enthalten sind, mindestens dem Wert vonmaintenance.commit-graph.autoentspricht. Der Standardwert ist 100. - maintenance.loose-objects.auto
-
Diese Ganzzahl-Konfigurationsoption steuert, wie oft die
loose-objects-Aufgabe als Teil vongitmaintenancerun--autoausgeführt werden soll. Wenn sie Null ist, wird dieloose-objects-Aufgabe nicht mit der--auto-Option ausgeführt. Ein negativer Wert zwingt die Aufgabe, jedes Mal ausgeführt zu werden. Andernfalls impliziert ein positiver Wert, dass der Befehl ausgeführt werden soll, wenn die Anzahl der losen Objekte mindestens dem Wert vonmaintenance.loose-objects.autoentspricht. Der Standardwert ist 100. - maintenance.loose-objects.batchSize
-
Diese Ganzzahl-Konfigurationsoption steuert die maximale Anzahl loser Objekte, die während der
loose-objects-Aufgabe in ein Packfile geschrieben werden. Der Standardwert ist fünfzigtausend. Verwenden Sie den Wert0, um keine Begrenzung anzuzeigen. - maintenance.incremental-repack.auto
-
Diese Ganzzahl-Konfigurationsoption steuert, wie oft die
incremental-repack-Aufgabe als Teil vongitmaintenancerun--autoausgeführt werden soll. Wenn sie Null ist, wird dieincremental-repack-Aufgabe nicht mit der--auto-Option ausgeführt. Ein negativer Wert zwingt die Aufgabe, jedes Mal ausgeführt zu werden. Andernfalls impliziert ein positiver Wert, dass der Befehl ausgeführt werden soll, wenn die Anzahl der Packfiles, die nicht im Multi-Pack-Index sind, mindestens dem Wert vonmaintenance.incremental-repack.autoentspricht. Der Standardwert ist 10. - maintenance.geometric-repack.auto
-
Diese Ganzzahl-Konfigurationsoption steuert, wie oft die
geometric-repack-Aufgabe als Teil vongitmaintenancerun--autoausgeführt werden soll. Wenn sie Null ist, wird diegeometric-repack-Aufgabe nicht mit der--auto-Option ausgeführt. Ein negativer Wert zwingt die Aufgabe, jedes Mal ausgeführt zu werden. Andernfalls impliziert ein positiver Wert, dass der Befehl entweder ausgeführt werden soll, wenn Packfiles zusammengeführt werden müssen, um die geometrische Progression beizubehalten, oder wenn mindestens so viele lose Objekte vorhanden sind, die in ein neues Packfile geschrieben würden. Der Standardwert ist 100. - maintenance.geometric-repack.splitFactor
-
Diese Ganzzahl-Konfigurationsoption steuert den Faktor, der für die geometrische Sequenz verwendet wird. Weitere Informationen finden Sie in der Option
--geometric=in git-repack[1]. Standardmäßig ist dies2. - maintenance.reflog-expire.auto
-
Diese Ganzzahl-Konfigurationsoption steuert, wie oft die
reflog-expire-Aufgabe als Teil vongitmaintenancerun--autoausgeführt werden soll. Wenn sie Null ist, wird diereflog-expire-Aufgabe nicht mit der--auto-Option ausgeführt. Ein negativer Wert zwingt die Aufgabe, jedes Mal ausgeführt zu werden. Andernfalls impliziert ein positiver Wert, dass der Befehl ausgeführt werden soll, wenn die Anzahl der abgelaufenen Reflog-Einträge im "HEAD"-Reflog mindestens dem Wert vonmaintenance.loose-objects.autoentspricht. Der Standardwert ist 100. - maintenance.rerere-gc.auto
-
Diese Ganzzahl-Konfigurationsoption steuert, wie oft die
rerere-gc-Aufgabe als Teil vongitmaintenancerun--autoausgeführt werden soll. Wenn sie Null ist, wird diererere-gc-Aufgabe nicht mit der--auto-Option ausgeführt. Ein negativer Wert zwingt die Aufgabe, jedes Mal ausgeführt zu werden. Andernfalls impliziert jeder positive Wert, dass der Befehl ausgeführt wird, wenn das Verzeichnis "rr-cache" existiert und mindestens einen Eintrag hat, unabhängig davon, ob er veraltet ist oder nicht. Diese Heuristik kann in Zukunft verfeinert werden. Der Standardwert ist 1. - maintenance.worktree-prune.auto
-
Diese Ganzzahl-Konfigurationsoption steuert, wie oft die
worktree-prune-Aufgabe als Teil vongitmaintenancerun--autoausgeführt werden soll. Wenn sie Null ist, wird dieworktree-prune-Aufgabe nicht mit der--auto-Option ausgeführt. Ein negativer Wert zwingt die Aufgabe, jedes Mal ausgeführt zu werden. Andernfalls impliziert ein positiver Wert, dass der Befehl ausgeführt werden soll, wenn die Anzahl der prunebaren Worktrees den Wert überschreitet. Der Standardwert ist 1. - man.viewer
-
Geben Sie die Programme an, die zur Anzeige von Hilfe im man-Format verwendet werden können. Siehe git-help[1].
- man.<tool>.cmd
-
Geben Sie den Befehl zum Aufrufen des angegebenen Man-Viewers an. Der angegebene Befehl wird in der Shell ausgewertet, wobei die Manpage als Argument übergeben wird. (Siehe git-help[1].)
- man.<tool>.path
-
Überschreiben Sie den Pfad für das angegebene Werkzeug, das zur Anzeige von Hilfe im man-Format verwendet werden kann. Siehe git-help[1].
merge.conflictStyle-
Geben Sie den Stil an, in dem konfligierende Hunks beim Zusammenführen in Arbeitsbaumdateien geschrieben werden. Der Standard ist "merge", der eine <<<<<<<-Konfliktmarkierung, Änderungen, die von einer Seite vorgenommen wurden, eine
=======-Markierung, Änderungen, die von der anderen Seite vorgenommen wurden, und dann eine >>>>>>>-Markierung anzeigt. Ein alternativer Stil, "diff3", fügt eine |||||||-Markierung und den ursprünglichen Text vor der=======-Markierung hinzu. Der "merge"-Stil neigt dazu, kleinere Konfliktregionen als diff3 zu erzeugen, sowohl wegen des Ausschlusses des Originaltextes als auch, weil Übereinstimmungen zwischen den Zeilen auf beiden Seiten, wenn sie in der Nähe eines Teils der Konfliktregion liegen, einfach aus der Konfliktregion herausgezogen werden. Ein weiterer alternativer Stil, "zdiff3", ist ähnlich wie diff3, entfernt jedoch übereinstimmende Zeilen auf beiden Seiten aus der Konfliktregion, wenn diese übereinstimmenden Zeilen nahe dem Anfang oder Ende einer Konfliktregion erscheinen. merge.defaultToUpstream-
Wenn merge ohne Commit-Argument aufgerufen wird, werden die für den aktuellen Branch konfigurierten Upstream-Branches zusammengeführt, indem deren zuletzt beobachtete Werte, die in ihren Remote-Tracking-Branches gespeichert sind, verwendet werden. Die Werte von branch.<current branch>.merge, die die Branches im Remote mit dem Namen
branch.<current-branch>.remoteangeben, werden konsultiert, und dann werden sie überremote.<remote>.fetchauf ihre entsprechenden Remote-Tracking-Branches abgebildet, und die Spitzen dieser Tracking-Branches werden zusammengeführt. Standardmäßig ist dies true. merge.ff-
Standardmäßig erstellt Git keinen zusätzlichen Merge-Commit, wenn ein Commit zusammengeführt wird, der ein Nachfahre des aktuellen Commits ist. Stattdessen wird die Spitze des aktuellen Branches per Fast-Forward verschoben. Wenn diese Variable auf
falsegesetzt ist, weist dies Git an, in einem solchen Fall einen zusätzlichen Merge-Commit zu erstellen (entspricht der Angabe der Option--no-ffauf der Befehlszeile). Wenn sie aufonlygesetzt ist, sind nur solche Fast-Forward-Merges erlaubt (entspricht der Angabe der Option--ff-onlyauf der Befehlszeile). merge.verifySignatures-
Wenn true, ist dies äquivalent zur Befehlszeilenoption
--verify-signatures. Details siehe git-merge[1]. merge.branchdesc-
Zusätzlich zu den Branch-Namen werden auch die zugehörigen Branch-Beschreibungs-Texte in die Log-Nachricht aufgenommen. Standardmäßig false.
merge.log-
Zusätzlich zu den Branch-Namen werden bis zu der angegebenen Anzahl von Einzeilenbeschreibungen aus den tatsächlich zusammengeführten Commits in die Log-Nachricht aufgenommen. Standardmäßig false, und true ist ein Synonym für 20.
merge.suppressDest-
Durch Hinzufügen eines Globs, der auf die Namen von Integrations-Branches passt, zu dieser mehrwertigen Konfigurationsvariablen wird die Standard-Merge-Nachricht, die für Merges in diese Integrations-Branches berechnet wird, "into <branch-name>" aus ihrem Titel weggelassen.
Ein Element mit einem leeren Wert kann verwendet werden, um die Liste der Globs zu löschen, die aus früheren Konfigurationseinträgen angesammelt wurden. Wenn keine
merge.suppressDest-Variable definiert ist, wird der Standardwertmasteraus Gründen der Abwärtskompatibilität verwendet. merge.renameLimit-
Die Anzahl der Dateien, die im vollständigen Teil der Umbenennungserkennung während eines Merges berücksichtigt werden. Wenn nicht angegeben, wird standardmäßig der Wert von
diff.renameLimitverwendet. Wenn wedermerge.renameLimitnochdiff.renameLimitangegeben sind, ist der aktuelle Standardwert 7000. Diese Einstellung hat keine Auswirkung, wenn die Umbenennungserkennung deaktiviert ist. merge.renames-
Ob Git Umbenennungen erkennt. Wenn auf
falsegesetzt, ist die Umbenennungserkennung deaktiviert. Wenn auftruegesetzt, ist die grundlegende Umbenennungserkennung aktiviert. Standardmäßig wird der Wert von diff.renames verwendet. merge.directoryRenames-
Ob Git Verzeichnis-Umbenennungen erkennt, was sich darauf auswirkt, was beim Zusammenführen mit neuen Dateien geschieht, die einem Verzeichnis auf einer Seite der Historie hinzugefügt wurden, wenn dieses Verzeichnis auf der anderen Seite der Historie umbenannt wurde. Mögliche Werte sind
false-
Die Erkennung von Verzeichnisumbenennungen ist deaktiviert, was bedeutet, dass solche neuen Dateien im alten Verzeichnis verbleiben.
true-
Die Erkennung von Verzeichnisumbenennungen ist aktiviert, was bedeutet, dass solche neuen Dateien in das neue Verzeichnis verschoben werden.
conflict-
Für solche Pfade wird ein Konflikt gemeldet.
Wenn
merge.renamesfalseist, wirdmerge.directoryRenamesignoriert und alsfalsebehandelt. Standardmäßig ist diesconflict. merge.renormalize-
Teilen Sie Git mit, dass sich die kanonische Darstellung von Dateien im Repository im Laufe der Zeit geändert hat (z. B. frühere Commits zeichnen Textdateien mit CRLF-Zeilenenden auf, neuere verwenden LF-Zeilenenden). In einem solchen Repository kann Git für jede Datei, bei der eine Dreifach-Inhalts-Zusammenführung erforderlich ist, die in Commits aufgezeichneten Daten in eine kanonische Form konvertieren, bevor eine Zusammenführung durchgeführt wird, um unnötige Konflikte zu reduzieren. Weitere Informationen finden Sie im Abschnitt "Merging branches with differing checkin/checkout attributes" in gitattributes[5].
merge.stat-
Was, wenn überhaupt etwas, zwischen
ORIG_HEADund dem Merge-Ergebnis am Ende des Merges ausgegeben werden soll. Mögliche Werte sindaber jeder nicht erkannte Wert (z.B. ein Wert, der von einer zukünftigen Git-Version hinzugefügt wird) wird anstelle eines Fehlers als
truebehandelt. Standardmäßigtrue. merge.autoStash-
Wenn auf
truegesetzt, wird vor dem Beginn des Vorgangs automatisch ein temporärer Stash-Eintrag erstellt und nach Beendigung des Vorgangs angewendet. Das bedeutet, dass Sie einen Merge auf einem schmutzigen Arbeitsbaum ausführen können. Verwenden Sie es jedoch mit Vorsicht: Das endgültige Anwenden des Stashes nach einem erfolgreichen Merge kann zu nicht trivialen Konflikten führen. Diese Option kann durch die Optionen--no-autostashund--autostashvon git-merge[1] überschrieben werden. Standardmäßig ist siefalse. merge.tool-
Steuert, welches Merge-Tool von git-mergetool[1] verwendet wird. Die folgende Liste zeigt die gültigen integrierten Werte. Jeder andere Wert wird als benutzerdefiniertes Merge-Tool behandelt und erfordert die Definition einer entsprechenden Variablen
mergetool.<tool>.cmd. merge.guitool-
Steuert, welches Merge-Tool von git-mergetool[1] verwendet wird, wenn die Flagge
-g/--guigesetzt ist. Die folgende Liste zeigt die gültigen integrierten Werte. Jeder andere Wert wird als benutzerdefiniertes Merge-Tool behandelt und erfordert die Definition einer entsprechenden Variablenmergetool.<guitool>.cmd.-
araxis
-
bc
-
codecompare
-
deltawalker
-
diffmerge
-
diffuse
-
ecmerge
-
emerge
-
examdiff
-
guiffy
-
gvimdiff
-
kdiff3
-
meld
-
nvimdiff
-
opendiff
-
p4merge
-
smerge
-
tkdiff
-
tortoisemerge
-
vimdiff
-
vscode
-
winmerge
-
xxdiff
-
merge.verbosity-
Steuert die Menge der von der rekursiven Merge-Strategie ausgegebenen Informationen. Stufe 0 gibt nichts außer einer abschließenden Fehlermeldung aus, wenn Konflikte erkannt wurden. Stufe 1 gibt nur Konflikte aus, Stufe 2 gibt Konflikte und Dateiänderungen aus. Stufe 5 und höher gibt Debugging-Informationen aus. Der Standard ist Stufe 2. Kann durch die Umgebungsvariable
GIT_MERGE_VERBOSITYüberschrieben werden. merge.<driver>.name-
Definiert einen menschenlesbaren Namen für einen benutzerdefinierten Low-Level-Merge-Treiber. Siehe gitattributes[5] für Details.
merge.<driver>.driver-
Definiert den Befehl, der einen benutzerdefinierten Low-Level-Merge-Treiber implementiert. Siehe gitattributes[5] für Details.
merge.<driver>.recursive-
Benennt einen Low-Level-Merge-Treiber, der bei der Durchführung eines internen Merges zwischen gemeinsamen Vorfahren verwendet werden soll. Siehe gitattributes[5] für Details.
mergetool.<tool>.path-
Überschreiben Sie den Pfad für das angegebene Werkzeug. Dies ist nützlich, falls Ihr Werkzeug nicht im
$PATHenthalten ist. mergetool.<tool>.cmd-
Geben Sie den Befehl zum Aufrufen des angegebenen Merge-Tools an. Der angegebene Befehl wird in der Shell ausgewertet, wobei die folgenden Variablen verfügbar sind:
BASEist der Name einer temporären Datei, die die gemeinsame Basis der zu mergenden Dateien enthält, falls verfügbar;LOCAList der Name einer temporären Datei, die den Inhalt der Datei im aktuellen Branch enthält;REMOTEist der Name einer temporären Datei, die den Inhalt der Datei aus dem zu mergenden Branch enthält;MERGEDenthält den Namen der Datei, in die das Merge-Tool die Ergebnisse eines erfolgreichen Merges schreiben soll. mergetool.<tool>.hideResolved-
Ermöglicht dem Benutzer, den globalen
mergetool.hideResolved-Wert für ein bestimmtes Werkzeug zu überschreiben. Siehemergetool.hideResolvedfür die vollständige Beschreibung. mergetool.<tool>.trustExitCode-
Geben Sie für einen benutzerdefinierten Merge-Befehl an, ob der Exit-Code des Merge-Befehls verwendet werden kann, um festzustellen, ob der Merge erfolgreich war. Wenn dies nicht auf true gesetzt ist, wird der Zeitstempel der Merge-Ziel-Datei überprüft, und der Merge wird als erfolgreich angenommen, wenn die Datei aktualisiert wurde; andernfalls wird der Benutzer aufgefordert, den Erfolg des Merges anzugeben.
mergetool.meld.hasOutput-
Ältere Versionen von
meldunterstützen die Option--outputnicht. Git versucht zu erkennen, obmeld--outputunterstützt, indem es die Ausgabe vonmeld--helpanalysiert. Die Konfiguration vonmergetool.meld.hasOutputbewirkt, dass Git diese Prüfungen überspringt und den konfigurierten Wert verwendet. Das Setzen vonmergetool.meld.hasOutputauftrueweist Git an, die Option--outputbedingungslos zu verwenden, undfalsevermeidet die Verwendung von--output. mergetool.meld.useAutoMerge-
Wenn
--auto-mergeangegeben wird, führt meld automatisch alle nicht-konfligierenden Teile zusammen, hebt die konfligierenden Teile hervor und wartet auf die Benutzerentscheidung. Das Setzen vonmergetool.meld.useAutoMergeauftrueweist Git an, die Option--auto-mergebedingungslos mitmeldzu verwenden. Ein Wert vonautobewirkt, dass Git erkennt, ob--auto-mergeunterstützt wird, und--auto-mergenur verwendet, wenn es verfügbar ist. Ein Wert vonfalsevermeidet die Verwendung von--auto-mergevollständig und ist der Standardwert. mergetool.<variant>.layout-
Konfigurieren Sie das Split-Fenster-Layout für vimdiffs <variant>, was entweder
vimdiff,nvimdiffodergvimdiffist. Beim Starten vongitmergetoolmit--tool=<variant> (oder ohne--tool, wennmerge.toolals <variant> konfiguriert ist), konsultiert Gitmergetool.<variant>.layout, um das Layout des Werkzeugs zu bestimmen. Wenn die spezifische Konfiguration für die Variante nicht verfügbar ist, wird die vonvimdiffals Fallback verwendet. Wenn auch diese nicht verfügbar ist, wird ein Standardlayout mit 4 Fenstern verwendet. Zur Konfiguration des Layouts siehe den Abschnitt "BACKEND SPECIFIC HINTS" in git-mergetool[1]. mergetool.hideResolved-
Während eines Merges löst Git automatisch so viele Konflikte wie möglich und schreibt die Datei
$MERGED, die Konfliktmarker um alle Konflikte enthält, die es nicht lösen kann;$LOCALund$REMOTEsind normalerweise die Versionen der Datei von vor der Konfliktlösung durch Git. Dieses Flag bewirkt, dass$LOCALund$REMOTEüberschrieben werden, sodass nur die ungelösten Konflikte dem Merge-Tool präsentiert werden. Kann pro Werkzeug über die Konfigurationsvariablemergetool.<tool>.hideResolvedkonfiguriert werden. Standardmäßigfalse. mergetool.keepBackup-
Nach der Durchführung eines Merges kann die Originaldatei mit Konfliktmarkierungen als Datei mit der Erweiterung
.origgespeichert werden. Wenn diese Variable auffalsegesetzt ist, wird diese Datei nicht beibehalten. Standardmäßigtrue(d.h. die Backup-Dateien behalten). mergetool.keepTemporaries-
Beim Aufrufen eines benutzerdefinierten Merge-Tools verwendet Git eine Reihe von temporären Dateien, die dem Tool übergeben werden. Wenn das Tool einen Fehler zurückgibt und diese Variable auf
truegesetzt ist, werden diese temporären Dateien beibehalten; andernfalls werden sie entfernt, nachdem das Tool beendet wurde. Standardmäßigfalse. mergetool.writeToTemp-
Git schreibt standardmäßig temporäre
BASE,LOCALundREMOTE-Versionen von konfliktreichen Dateien im Arbeitsbaum. Git versucht, ein temporäres Verzeichnis für diese Dateien zu verwenden, wenn dies auftruegesetzt ist. Standardmäßigfalse. mergetool.prompt-
Fragen Sie vor jedem Aufruf des Merge-Auflösungsprogramms nach.
mergetool.guiDefault-
Setzen Sie auf
true, um standardmäßigmerge.guitoolzu verwenden (entspricht der Angabe des Arguments--gui), oder aufauto, ummerge.guitoolodermerge.toolauszuwählen, abhängig vom Vorhandensein einesDISPLAY-Umgebungsvariablenwertes. Der Standardwert istfalse, wobei das Argument--guiexplizit angegeben werden muss, damitmerge.guitoolverwendet wird. notes.mergeStrategy-
Welche Merge-Strategie standardmäßig bei der Auflösung von Notizen-Konflikten gewählt werden soll. Muss einer der Werte
manual,ours,theirs,unionodercat_sort_uniqsein. Standardmäßigmanual. Siehe den Abschnitt "NOTES MERGE STRATEGIES" in git-notes[1] für weitere Informationen zu jeder Strategie.Diese Einstellung kann durch Übergabe der Option
--strategyan git-notes[1] überschrieben werden. notes.<name>.mergeStrategy-
Welche Merge-Strategie bei einem Notizen-Merge in
refs/notes/<name> gewählt werden soll. Dies überschreibt die allgemeinere Einstellungnotes.mergeStrategy. Siehe den Abschnitt "NOTES MERGE STRATEGIES" in git-notes[1] für weitere Informationen zu den verfügbaren Strategien. notes.displayRef-
Welcher Ref (oder welche Refs, wenn ein Glob oder mehrfach angegeben), zusätzlich zu dem von
core.notesRefoderGIT_NOTES_REFstandardmäßig festgelegten Ref, aus dem Notizen gelesen werden sollen, wenn Commit-Nachrichten mit dergitlog-Befehlsfamilie angezeigt werden.Diese Einstellung kann mit der Umgebungsvariable
GIT_NOTES_DISPLAY_REFüberschrieben werden, die eine durch Doppelpunkte getrennte Liste von Refs oder Globs sein muss.Für nicht existierende Refs wird eine Warnung ausgegeben, ein Glob, der keine Refs findet, wird jedoch stillschweigend ignoriert.
Diese Einstellung kann durch die Option
--no-notesfür diegitlog-Befehlsfamilie oder durch die Option--notes=<ref>, die von diesen Befehlen akzeptiert wird, deaktiviert werden.Der effektive Wert von
core.notesRef(möglicherweise überschrieben durchGIT_NOTES_REF) wird ebenfalls implizit zur Liste der anzuzeigenden Refs hinzugefügt. notes.rewrite.<command>-
Beim Umschreiben von Commits mit <command> (derzeit
amendoderrebase), wenn diese Variable auffalsegesetzt ist, kopiert Git keine Notizen vom Original auf den umgeschriebenen Commit. Standardmäßigtrue. Siehe auchnotes.rewriteRefunten.Diese Einstellung kann mit der Umgebungsvariable
GIT_NOTES_REWRITE_REFüberschrieben werden, die eine durch Doppelpunkte getrennte Liste von Refs oder Globs sein muss. notes.rewriteMode-
Beim Kopieren von Notizen während eines Rewrites (siehe
notes.rewrite.<command>-Option) wird festgelegt, was zu tun ist, wenn der Ziel-Commit bereits eine Notiz hat. Muss einer der Werteoverwrite,concatenate,cat_sort_uniqoderignoresein. Standardmäßigconcatenate.Diese Einstellung kann mit der Umgebungsvariable
GIT_NOTES_REWRITE_MODEüberschrieben werden. notes.rewriteRef-
Beim Kopieren von Notizen während eines Rewrites wird der (vollqualifizierte) Ref angegeben, dessen Notizen kopiert werden sollen. Kann ein Glob sein, in diesem Fall werden Notizen aus allen passenden Refs kopiert. Sie können diese Konfiguration auch mehrmals angeben.
Hat keinen Standardwert; Sie müssen diese Variable konfigurieren, um Notizen-Rewriting zu aktivieren. Setzen Sie sie auf
refs/notes/commits, um das Rewriting für die Standard-Commit-Notizen zu aktivieren.Kann mit der Umgebungsvariable
GIT_NOTES_REWRITE_REFüberschrieben werden. Siehenotes.rewrite.<command> oben für eine weitere Beschreibung seines Formats. - pack.window
-
Die Fenstergröße, die von git-pack-objects[1] verwendet wird, wenn keine Fenstergröße auf der Befehlszeile angegeben ist. Standardmäßig 10.
- pack.depth
-
Die maximale Delta-Tiefe, die von git-pack-objects[1] verwendet wird, wenn keine maximale Tiefe auf der Befehlszeile angegeben ist. Standardmäßig 50. Maximalwert ist 4095.
- pack.windowMemory
-
Die maximale Speichermenge, die von jedem Thread in git-pack-objects[1] für Pack-Fenster-Speicher verbraucht wird, wenn auf der Befehlszeile keine Begrenzung angegeben ist. Der Wert kann mit "k", "m" oder "g" ergänzt werden. Wenn er nicht konfiguriert ist (oder explizit auf 0 gesetzt ist), gibt es keine Begrenzung.
- pack.compression
-
Eine Ganzzahl von -1..9, die die Kompressionsstufe für Objekte in einer Packdatei angibt. -1 ist der zlib-Standard. 0 bedeutet keine Kompression, und 1..9 sind verschiedene Geschwindigkeit/Größen-Kompromisse, wobei 9 die langsamste ist. Wenn nicht gesetzt, wird standardmäßig core.compression verwendet. Wenn auch dies nicht gesetzt ist, wird standardmäßig -1, der zlib-Standard, verwendet, der "ein Standardkompromiss zwischen Geschwindigkeit und Kompression (derzeit äquivalent zu Stufe 6)" ist.
Beachten Sie, dass die Änderung der Kompressionsstufe nicht alle vorhandenen Objekte automatisch neu komprimiert. Sie können eine Neu-Kompression erzwingen, indem Sie die Option -F an git-repack[1] übergeben.
- pack.allowPackReuse
-
Wenn true oder "single" und wenn Erreichbarkeits-Bitmaps aktiviert sind, versucht pack-objects, Teile der mit Bitmaps versehenen Packdatei wörtlich zu senden. Wenn "multi" und wenn eine Multi-Pack-Erreichbarkeits-Bitmap verfügbar ist, versucht pack-objects, Teile aller Packs im MIDX zu senden.
Wenn nur eine einzige Pack-Bitmap verfügbar ist und
pack.allowPackReuseauf "multi" gesetzt ist, werden Teile der bitmappeden Packdatei wiederverwendet. Dies kann den Speicher- und CPU-Verbrauch beim Serven von Fetches reduzieren, kann aber dazu führen, dass ein geringfügig größerer Pack gesendet wird. Standard ist true. - pack.island
-
Ein erweitertes reguläres Ausdruck, das eine Menge von Delta-Inseln konfiguriert. Siehe "DELTA ISLANDS" in git-pack-objects[1] für Details.
- pack.islandCore
-
Gibt einen Inselnamen an, dessen Objekte zuerst verpackt werden. Dies erstellt eine Art Pseudo-Pack am Anfang eines Packs, sodass die Objekte der angegebenen Insel hoffentlich schneller in jedes Pack kopiert werden können, das einem Benutzer, der diese Objekte anfordert, zur Verfügung gestellt werden soll. In der Praxis bedeutet dies, dass die angegebene Insel wahrscheinlich dem entspricht, was im Repository am häufigsten geklont wird. Siehe auch "DELTA ISLANDS" in git-pack-objects[1].
- pack.deltaCacheSize
-
Die maximal im Cache für Deltas in git-pack-objects[1] zu verwendende Speichergröße in Bytes, bevor sie in eine Packdatei geschrieben werden. Dieser Cache wird verwendet, um die Phase des Schreibens von Objekten zu beschleunigen, indem nicht das endgültige Deltareultat neu berechnet werden muss, sobald die beste Übereinstimmung für alle Objekte gefunden wurde. Das erneute Verpacken großer Repositories auf speicherarmen Maschinen kann dadurch jedoch stark beeinträchtigt werden, insbesondere wenn dieser Cache das System zum Swappen veranlasst. Ein Wert von 0 bedeutet keine Begrenzung. Die kleinste Größe von 1 Byte kann verwendet werden, um diesen Cache virtuell zu deaktivieren. Standard ist 256 MiB.
- pack.deltaCacheLimit
-
Die maximale Größe eines Deltas, das in git-pack-objects[1] gecached wird. Dieser Cache wird verwendet, um die Phase des Schreibens von Objekten zu beschleunigen, indem nicht das endgültige Deltareultat neu berechnet werden muss, sobald die beste Übereinstimmung für alle Objekte gefunden wurde. Standard ist 1000. Maximalwert ist 65535.
- pack.threads
-
Gibt die Anzahl der Threads an, die beim Suchen nach den besten Deltas-Übereinstimmungen gestartet werden. Dies erfordert, dass git-pack-objects[1] mit pthreads kompiliert wurde, andernfalls wird diese Option mit einer Warnung ignoriert. Dies soll die Verpackungszeit auf Mehrprozessormaschinen reduzieren. Der benötigte Speicher für das Delta-Suchfenster wird jedoch mit der Anzahl der Threads multipliziert. Die Angabe von 0 führt dazu, dass Git die Anzahl der CPUs automatisch erkennt und die Anzahl der Threads entsprechend einstellt.
- pack.indexVersion
-
Gibt die Standard-Pack-Indexversion an. Gültige Werte sind 1 für den Legacy-Pack-Index, der von Git-Versionen vor 1.5.2 verwendet wird, und 2 für den neuen Pack-Index mit Funktionen für Packs größer als 4 GB sowie korrektem Schutz gegen das erneute Verpacken beschädigter Packs. Version 2 ist der Standard. Beachten Sie, dass Version 2 erzwungen wird und diese Konfigurationsoption ignoriert wird, sobald der entsprechende Pack größer als 2 GB ist.
Wenn Sie ein altes Git haben, das die Indexdatei (
*.idx) der Version 2 nicht versteht, kann das Klonen oder Abrufen über ein nicht-natives Protokoll (z. B. "http"), das sowohl die Pack-Datei (*.pack) als auch die entsprechende Indexdatei (*.idx) von der anderen Seite kopiert, zu einem Repository führen, das mit Ihrer älteren Git-Version nicht zugänglich ist. Wenn die Pack-Datei (*.pack) kleiner als 2 GB ist, können Sie jedoch git-index-pack[1] auf der *.pack-Datei verwenden, um die Indexdatei (*.idx) neu zu generieren. - pack.packSizeLimit
-
Die maximale Größe eines Packs. Diese Einstellung wirkt sich nur auf das Verpacken in eine Datei beim erneuten Verpacken aus, d. h. das git://-Protokoll ist davon unberührt. Sie kann durch die Option
--max-pack-sizevon git-repack[1] überschrieben werden. Das Erreichen dieses Grenzwerts führt zur Erstellung mehrerer Packdateien.Beachten Sie, dass diese Option selten nützlich ist und zu einer größeren Gesamtgröße auf der Festplatte (da Git keine Deltas zwischen Packs speichert) und einer schlechteren Laufzeit-Performance (Objektsuche innerhalb mehrerer Packs ist langsamer als in einem einzigen Pack, und Optimierungen wie Reichlichkeits-Bitmaps können mit mehreren Packs nicht umgehen) führen kann.
Wenn Sie Git aktiv mit kleineren Packdateien verwenden müssen (z. B. weil Ihr Dateisystem keine großen Dateien unterstützt), kann diese Option hilfreich sein. Wenn es Ihr Ziel ist, eine Packdatei über ein Medium zu übertragen, das begrenzte Größen unterstützt (z. B. Wechselmedien, die das gesamte Repository nicht speichern können), ist es wahrscheinlich besser, eine einzelne große Packdatei zu erstellen und diese mit einem generischen Multi-Volume-Archivierungstool (z. B. Unix
split) aufzuteilen.Die minimal zulässige Größe ist auf 1 MiB begrenzt. Standard ist unbegrenzt. Gängige Einheiten-Suffixe von k, m oder g werden unterstützt.
- pack.useBitmaps
-
Wenn true, wird Git Pack-Bitmaps (falls verfügbar) beim Verpacken nach stdout (z. B. während der Serverseite eines Fetches) verwenden. Standard ist true. Sie sollten diese Option im Allgemeinen nicht deaktivieren müssen, es sei denn, Sie debuggen Pack-Bitmaps.
- pack.useBitmapBoundaryTraversal
-
Wenn true, verwendet Git einen experimentellen Algorithmus zur Berechnung von Reichlichkeitsabfragen mit Bitmaps. Anstatt vollständige Bitmaps für alle negierten Spitzen aufzubauen und sie dann zu verknüpfen, werden negierte Spitzen mit vorhandenen Bitmaps als additiv betrachtet (d. h. sie werden mit OR in das Ergebnis aufgenommen, wenn sie existieren, andernfalls ignoriert) und stattdessen eine Bitmap am Rand aufgebaut.
Bei Verwendung dieses Algorithmus kann Git zu viele Objekte einschließen, da Bäume, die zu bestimmten UNINTERESTING Commits gehören, nicht geöffnet werden. Diese Ungenauigkeit entspricht dem Nicht-Bitmap-Traversierungsalgorithmus.
In vielen Fällen kann dies eine Beschleunigung gegenüber dem exakten Algorithmus bieten, insbesondere wenn die Bitmap-Abdeckung der negierten Seite der Abfrage schlecht ist.
- pack.useSparse
-
Wenn true, wird Git standardmäßig die Option --sparse in git pack-objects verwenden, wenn die Option --revs vorhanden ist. Dieser Algorithmus durchläuft nur Bäume, die in Pfaden vorkommen, die neue Objekte einführen. Dies kann erhebliche Leistungsvorteile bringen, wenn ein Pack zur Übertragung einer kleinen Änderung berechnet wird. Es ist jedoch möglich, dass zusätzliche Objekte in die Packdatei aufgenommen werden, wenn die enthaltenen Commits bestimmte Arten von direkten Umbenennungen enthalten. Standard ist
true. - pack.usePathWalk
-
Aktiviert die Option
--path-walkstandardmäßig fürgitpack-objects-Prozesse. Vollständige Details finden Sie unter git-pack-objects[1]. - pack.preferBitmapTips
-
Bei der Auswahl von Commits, die Bitmaps erhalten sollen, wird ein Commit an der Spitze eines beliebigen Referenzes, der ein Suffix eines beliebigen Werts dieser Konfiguration ist, gegenüber anderen Commits im "Auswahlfenster" bevorzugt.
Beachten Sie, dass die Einstellung dieser Konfiguration auf
refs/foonicht bedeutet, dass die Commits an den Spitzen vonrefs/foo/barundrefs/foo/bazunbedingt ausgewählt werden. Dies liegt daran, dass Commits für Bitmaps aus einer Reihe von Fenstern variabler Länge ausgewählt werden.Wenn ein Commit an der Spitze eines Referenzes, der ein Suffix eines beliebigen Werts dieser Konfiguration ist, in einem Fenster gesehen wird, erhält er sofort Vorrang vor jedem anderen Commit in diesem Fenster.
- pack.writeBitmaps (veraltet)
-
Dies ist ein veraltetes Synonym für
repack.writeBitmaps. - pack.writeBitmapHashCache
-
Wenn true, wird Git einen "Hash-Cache"-Abschnitt in den Bitmap-Index (falls einer geschrieben wird) aufnehmen. Dieser Cache kann verwendet werden, um die Delta-Heuristiken von Git zu füttern, was potenziell zu besseren Deltas zwischen bitmappeden und nicht-bitmappeden Objekten führen kann (z. B. beim Serven eines Fetches zwischen einem älteren, bitmappeden Pack und Objekten, die seit dem letzten gc gepusht wurden). Der Nachteil ist, dass er 4 Bytes pro Objekt Festplattenspeicher verbraucht. Standard ist true.
Beim Schreiben einer Multi-Pack-Reichlichkeits-Bitmap werden keine neuen Namens-Hashes berechnet; stattdessen werden alle in einer vorhandenen Bitmap gespeicherten Namens-Hashes beim Schreiben einer neuen Bitmap an ihren entsprechenden Speicherort permutiert.
- pack.writeBitmapLookupTable
-
Wenn true, wird Git einen "Lookup-Table"-Abschnitt in den Bitmap-Index (falls einer geschrieben wird) aufnehmen. Diese Tabelle wird verwendet, um das Laden einzelner Bitmaps so spät wie möglich zu verzögern. Dies kann in Repositories mit relativ großen Bitmap-Indizes von Vorteil sein. Standard ist false.
- pack.readReverseIndex
-
Wenn true, wird Git alle vorhandenen .rev-Dateien lesen (siehe: gitformat-pack[5]). Wenn false, wird der Reverse-Index von Grund auf neu generiert und im Speicher gespeichert. Standard ist true.
- pack.writeReverseIndex
-
Wenn true, wird Git eine entsprechende .rev-Datei (siehe: gitformat-pack[5]) für jede neue Packdatei schreiben, die es schreibt, mit Ausnahme von git-fast-import[1] und dem Bulk-Checkin-Mechanismus. Standard ist true.
- pager.<cmd>
-
Wenn der Wert ein Boolean ist, wird die Paginierung der Ausgabe eines bestimmten Git-Unterbefehls beim Schreiben auf ein TTY aktiviert oder deaktiviert. Andernfalls wird die Paginierung für den Unterbefehl mit dem durch den Wert von
pager.<cmd> angegebenen Pager aktiviert. Wenn--paginateoder--no-pagerauf der Kommandozeile angegeben wird, hat dies Vorrang vor dieser Option. Um die Paginierung für alle Befehle zu deaktivieren, setzen Siecore.pageroderGIT_PAGERaufcat. - pretty.<name>
-
Alias für eine --pretty= Formatzeichenfolge, wie in git-log[1] angegeben. Alle hier definierten Aliase können genauso verwendet werden wie die integrierten Pretty-Formate. Zum Beispiel würde die Ausführung von
gitconfigpretty.changelog"format:*%H%s"dazu führen, dass der Aufrufgitlog--pretty=changelogäquivalent zur Ausführung vongitlog"--pretty=format:*%H%s"ist. Beachten Sie, dass ein Alias mit demselben Namen wie ein integriertes Format stillschweigend ignoriert wird. - promisor.quiet
-
Wenn auf "true" gesetzt, wird bei der Abfrage zusätzlicher Objekte für einen partiellen Klon
--quietangenommen. - promisor.advertise
-
Wenn auf "true" gesetzt, verwendet ein Server die Fähigkeit "promisor-remote", siehe gitprotocol-v2[5], um die von ihm verwendeten Promisor-Remotes anzukündigen, falls er einige verwendet. Standard ist "false", was bedeutet, dass die Fähigkeit "promisor-remote" nicht angekündigt wird.
- promisor.sendFields
-
Eine durch Kommas oder Leerzeichen getrennte Liste zusätzlicher felderbezogener Feldnamen. Ein Server sendet diese Feldnamen und die zugehörigen Feldwerte aus seiner Konfiguration, wenn er seine Promisor-Remotes über die Fähigkeit "promisor-remote" ankündigt, siehe gitprotocol-v2[5]. Derzeit werden nur die Feldnamen "partialCloneFilter" und "token" unterstützt.
partialCloneFilter-
enthält den Filter für den partiellen Klon, der für das Remote verwendet wird.
token-
enthält ein Authentifizierungstoken für das Remote.
Wenn ein Feldname Teil dieser Liste ist und eine entsprechende "remote.foo.<feldname>"-Konfigurationsvariable auf dem Server auf einen nicht-leeren Wert gesetzt ist, werden der Feldname und der Wert beim Ankündigen des Promisor-Remotes "foo" gesendet.
Diese Liste hat keine Auswirkung, es sei denn, die Konfigurationsvariable "promisor.advertise" ist auf "true" gesetzt, und die Felder "name" und "url" werden immer unabhängig von dieser Einstellung angekündigt.
- promisor.acceptFromServer
-
Wenn auf "all" gesetzt, akzeptiert ein Client alle Promisor-Remotes, die ein Server über die Fähigkeit "promisor-remote" ankündigen könnte. Wenn auf "knownName" gesetzt, akzeptiert der Client Promisor-Remotes, die auf dem Client bereits konfiguriert sind und denselben Namen wie die vom Client angekündigten haben. Dies ist nicht sehr sicher, kann aber in einer Unternehmensumgebung verwendet werden, in der Server und Clients vertrauen, Namen und URLs nicht zu wechseln. Wenn auf "knownUrl" gesetzt, akzeptiert der Client Promisor-Remotes, die sowohl denselben Namen als auch dieselbe URL wie die vom Server angekündigten auf dem Client konfiguriert haben. Dies ist sicherer als "all" oder "knownName", daher sollte es nach Möglichkeit anstelle dieser Optionen verwendet werden. Standard ist "none", was bedeutet, dass kein vom Server angekündigtes Promisor-Remote akzeptiert wird. Durch die Akzeptanz eines Promisor-Remotes stimmt der Client zu, dass der Server Objekte weglassen kann, die von diesem Promisor-Remote als Lazy-Fetchbar gelten, aus seinen Antworten auf "fetch" und "clone"-Anfragen vom Client. Namens- und URL-Vergleiche sind case-sensitiv. Siehe gitprotocol-v2[5].
- promisor.checkFields
-
Eine durch Kommas oder Leerzeichen getrennte Liste zusätzlicher felderbezogener Feldnamen. Ein Client prüft, ob die von einem Server übertragenen Werte dieser Felder mit den Werten dieser Felder in seiner eigenen Konfiguration übereinstimmen, bevor er ein Promisor-Remote akzeptiert. Derzeit sind "partialCloneFilter" und "token" die einzigen unterstützten Feldnamen.
Wenn ein Feldname (z. B. "token") für ein angekündigtes Promisor-Remote (z. B. "foo") überprüft wird, müssen drei Bedingungen erfüllt sein, damit die Überprüfung dieses spezifischen Feldes erfolgreich ist.
-
Die entsprechende lokale Konfiguration (z. B.
remote.foo.token) muss gesetzt sein. -
Der Server muss das Feld "token" für das Remote "foo" ankündigen.
-
Der Wert des lokal konfigurierten
remote.foo.tokenmuss exakt mit dem vom Server für das Feld "token" angekündigten Wert übereinstimmen.Wenn eine dieser Bedingungen für einen in
promisor.checkFieldsaufgelisteten Feldnamen nicht erfüllt ist, wird das angekündigte Remote "foo" abgelehnt.Für das Feld "partialCloneFilter" ermöglicht dies dem Client, sicherzustellen, dass der Filter des Servers mit dem lokal erwarteten übereinstimmt, und verhindert so Inkonsistenzen im Filterverhalten. Für das Feld "token" kann dies verwendet werden, um zu überprüfen, ob die Authentifizierungsdaten mit den erwarteten Werten übereinstimmen.
Feldwerte werden case-sensitiv verglichen.
"name" und "url"-Felder werden immer gemäß der Richtlinie
promisor.acceptFromServergeprüft, unabhängig von dieser Einstellung.Die Feldnamen und -werte sollten vom Server über die "promisor-remote"-Fähigkeit mittels der Konfigurationsvariable
promisor.sendFieldsübergeben werden. Die Felder werden nur geprüft, wenn die Konfigurationsvariablepromisor.acceptFromServernicht auf "None" gesetzt ist. Wenn sie auf "None" gesetzt ist, hat diese Konfigurationsvariable keine Auswirkung. Siehe gitprotocol-v2[5].
-
- protocol.allow
-
Wenn gesetzt, wird eine benutzerdefinierte Standardrichtlinie für alle Protokolle bereitgestellt, die keine explizite Richtlinie haben (
protocol.<name>.allow). Standardmäßig, wenn nicht gesetzt, haben bekannte-sichere Protokolle (http, https, git, ssh) eine Standardrichtlinie vonalways, bekannte-gefährliche Protokolle (ext) eine Standardrichtlinie vonnever, und alle anderen Protokolle (einschließlich file) eine Standardrichtlinie vonuser. Unterstützte Richtlinien-
always- Protokoll kann immer verwendet werden. -
never- Protokoll kann nie verwendet werden. -
user- Protokoll kann nur verwendet werden, wennGIT_PROTOCOL_FROM_USERentweder nicht gesetzt ist oder den Wert 1 hat. Diese Richtlinie sollte verwendet werden, wenn Sie möchten, dass ein Protokoll direkt vom Benutzer verwendet werden kann, aber nicht von Befehlen, die Klon-/Fetch-/Push-Befehle ohne Benutzereingabe ausführen, z. B. rekursive Submodulinitialisierung.
-
- protocol.<name>.allow
-
Legt eine Richtlinie fest, die vom Protokoll <name> mit Klon-/Fetch-/Push-Befehlen verwendet wird. Siehe
protocol.allowoben für die verfügbaren Richtlinien.Die von Git derzeit verwendeten Protokollnamen sind:
-
file: jeder dateibasierte lokale Pfad (einschließlichfile://-URLs oder lokaler Pfade) -
git: das anonyme Git-Protokoll über eine direkte TCP-Verbindung (oder Proxy, falls konfiguriert) -
ssh: Git über SSH (einschließlichhost:path-Syntax,ssh://, etc.). -
http: Git über HTTP, sowohl "smart http" als auch "dumb http". Beachten Sie, dass dieshttpsnicht einschließt; wenn Sie beide konfigurieren möchten, müssen Sie dies einzeln tun. -
beliebige externe Helfer werden nach ihrem Protokoll benannt (z. B. verwenden Sie
hg, um den Helfergit-remote-hgzuzulassen)
-
- protocol.version
-
Wenn gesetzt, versucht der Client, mit dem Server unter Verwendung der angegebenen Protokollversion zu kommunizieren. Wenn der Server dies nicht unterstützt, wird die Kommunikation auf Version 0 zurückfallen. Wenn nicht gesetzt, ist der Standardwert
2. Unterstützte Versionen-
0- das ursprüngliche Wire-Protokoll. -
1- das ursprüngliche Wire-Protokoll mit der Hinzufügung einer Versionszeichenfolge in der anfänglichen Antwort des Servers. -
2- Wire-Protokoll Version 2, siehe gitprotocol-v2[5].
-
- pull.ff
-
Standardmäßig erstellt Git keinen zusätzlichen Merge-Commit, wenn ein Commit gemergt wird, der ein Nachfahre des aktuellen Commits ist. Stattdessen wird die Spitze des aktuellen Branches "fast-forwarded". Wenn auf
falsegesetzt, weist diese Variable Git an, in einem solchen Fall einen zusätzlichen Merge-Commit zu erstellen (entspricht der Angabe der Option--no-ffauf der Kommandozeile). Wenn aufonlygesetzt, sind nur solche Fast-Forward-Merges erlaubt (entspricht der Angabe der Option--ff-onlyauf der Kommandozeile). Diese Einstellung überschreibtmerge.ffbeim Ziehen. - pull.rebase
-
Wenn true, werden die Branches auf den abgerufenen Branch gerebased, anstatt den Standardbranch vom Standard-Remote zu mergen, wenn "git pull" ausgeführt wird. Siehe "branch.<name>.rebase" zum Setzen auf Pro-Branch-Basis.
Wenn
merges(oder nur m), wird die Option--rebase-mergesan git rebase übergeben, damit die lokalen Merge-Commits in den Rebase einbezogen werden (siehe git-rebase[1] für Details).Wenn der Wert
interactive(oder nur i) ist, wird der Rebase im interaktiven Modus ausgeführt.HINWEIS: Dies ist eine potenziell gefährliche Operation; verwenden Sie sie nicht, es sei denn, Sie verstehen die Auswirkungen (siehe git-rebase[1] für Details).
- pull.octopus
-
Die standardmäßige Merge-Strategie, die verwendet wird, wenn mehrere Branches auf einmal gezogen werden.
- pull.autoStash
-
Wenn auf true gesetzt, wird automatisch ein temporärer Stash-Eintrag erstellt, um die lokalen Änderungen vor Beginn der Operation zu speichern und sie nach Abschluss der Operation wiederherzustellen. Wenn Ihr "git pull" rebased (anstatt zu mergen), kann dies praktisch sein, da Rebase-Pull im Gegensatz zu Merge-Pull nicht mit lokalen Änderungen funktioniert, während Merge-Pull lokale Änderungen toleriert, die den Merge nicht stören.
Wenn
pull.autostashgesetzt ist (entweder auf true oder false), werdenmerge.autostashundrebase.autostashignoriert. Wennpull.autostashgar nicht gesetzt ist, wird je nach Wert vonpull.rebasestattdessenmerge.autostashoderrebase.autostashverwendet. Kann durch die Kommandozeilenoption--[no-]autostashüberschrieben werden. - pull.twohead
-
Die standardmäßige Merge-Strategie, die verwendet wird, wenn ein einzelner Branch gezogen wird.
- push.autoSetupRemote
-
Wenn auf "true" gesetzt, wird beim Standard-Push, wenn für den aktuellen Branch kein Upstream-Tracking vorhanden ist,
--set-upstreamangenommen; diese Option wird mit den push.default-Optionen simple, upstream und current wirksam. Sie ist nützlich, wenn Sie standardmäßig möchten, dass neue Branches zum Standard-Remote gepusht werden (ähnlich dem Verhalten von push.default=current) und Sie auch möchten, dass das Upstream-Tracking gesetzt wird. Workflows, die wahrscheinlich am meisten von dieser Option profitieren, sind simple zentrale Workflows, bei denen erwartet wird, dass alle Branches denselben Namen auf dem Remote haben. - push.default
-
Definiert die Aktion, die
gitpushausführen soll, wenn keine Refspec angegeben ist (weder über die Kommandozeile, Konfiguration noch anderswo). Verschiedene Werte sind für spezifische Workflows gut geeignet; zum Beispiel ist in einem rein zentralen Workflow (d. h. die Fetch-Quelle ist gleich dem Push-Ziel)upstreamwahrscheinlich das, was Sie wollen. Mögliche Werte sind-
nothing- nichts pushen (Fehler ausgeben), es sei denn, eine Refspec ist angegeben. Dies ist hauptsächlich für Leute gedacht, die Fehler vermeiden wollen, indem sie immer explizit sind. -
current- den aktuellen Branch pushen, um einen Branch mit demselben Namen am anderen Ende zu aktualisieren. Funktioniert sowohl in zentralen als auch in nicht-zentralen Workflows. -
upstream- den aktuellen Branch zurück an den Branch pushen, dessen Änderungen normalerweise in den aktuellen Branch integriert werden (der als@{upstream}bezeichnet wird). Dieser Modus ist nur sinnvoll, wenn Sie zum selben Repository pushen, von dem Sie normalerweise ziehen (d. h. zentraler Workflow). -
tracking- Dies ist ein veraltetes Synonym fürupstream. -
simple- den aktuellen Branch mit demselben Namen am Remote pushen.Wenn Sie in einem zentralisierten Workflow arbeiten (Push zum selben Repository, von dem Sie ziehen, normalerweise
origin), müssen Sie einen Upstream-Branch mit demselben Namen konfigurieren.Dieser Modus ist seit Git 2.0 der Standard und die sicherste Option für Anfänger.
-
matching- alle Branches pushen, die an beiden Enden denselben Namen haben. Dies bewirkt, dass sich das Repository, in das Sie pushen, die Menge der zu pushenden Branches merkt (z. B. wenn Sie dort immer maint und master pushen und keine anderen Branches, hat das Repository, in das Sie pushen, diese beiden Branches, und Ihre lokalen maint und master werden dorthin gepusht).Um diesen Modus effektiv zu nutzen, müssen Sie sicherstellen, dass *alle* Branches, die Sie pushen möchten, zum Pushen bereit sind, bevor Sie git push ausführen, da der ganze Sinn dieses Modus darin besteht, Ihnen zu ermöglichen, alle Branches auf einmal zu pushen. Wenn Sie normalerweise nur an einem Branch arbeiten und das Ergebnis pushen, während andere Branches unvollendet sind, ist dieser Modus nichts für Sie. Auch ist dieser Modus nicht geeignet, um in ein gemeinsames zentrales Repository zu pushen, da andere Personen dort neue Branches hinzufügen oder die Spitze bestehender Branches außerhalb Ihrer Kontrolle aktualisieren können.
Dies war früher der Standard, aber nicht mehr seit Git 2.0 (
simpleist der neue Standard).
-
- push.followTags
-
Wenn auf true gesetzt, wird die Option
--follow-tagsstandardmäßig aktiviert. Sie können diese Konfiguration zum Zeitpunkt des Pushs überschreiben, indem Sie--no-follow-tagsangeben. - push.gpgSign
-
Kann auf einen Booleschen Wert oder die Zeichenfolge if-asked gesetzt werden. Ein wahrer Wert bewirkt, dass alle Pushes GPG-signiert werden, als ob
--signedan git-push[1] übergeben würde. Die Zeichenfolge if-asked bewirkt, dass Pushes signiert werden, wenn der Server dies unterstützt, als ob--signed=if-askedan git push übergeben würde. Ein expliziter Wert false kann einen Wert aus einer Konfigurationsdatei mit niedrigerer Priorität überschreiben. Ein explizites Flag auf der Kommandozeile überschreibt diese Konfigurationsoption immer. - push.pushOption
-
Wenn kein Argument
--push-option=<option> von der Kommandozeile gegeben wird, verhält sichgitpushso, als ob jeder <value> dieser Variablen als--push-option=<value> gegeben würde.Dies ist eine mehrwertige Variable, und ein leerer Wert kann in einer Konfigurationsdatei mit höherer Priorität (z. B.
.git/configin einem Repository) verwendet werden, um Werte zu löschen, die von Konfigurationsdateien mit niedrigerer Priorität (z. B.$HOME/.gitconfig) geerbt wurden.Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b (a and c are cleared).
- push.recurseSubmodules
-
Kann "check", "on-demand", "only" oder "no" sein, mit demselben Verhalten wie bei "push --recurse-submodules". Wenn nicht gesetzt, wird standardmäßig no verwendet, es sei denn, submodule.recurse ist gesetzt (in diesem Fall bedeutet ein true-Wert on-demand).
- push.useForceIfIncludes
-
Wenn auf "true" gesetzt, ist dies äquivalent zur Angabe von
--force-if-includesals Option für git-push[1] auf der Kommandozeile. Das Hinzufügen von--no-force-if-includeszum Zeitpunkt des Pushs überschreibt diese Konfigurationseinstellung. - push.negotiate
-
Wenn auf "true" gesetzt, wird versucht, die Größe der gesendeten Packdatei durch Verhandlungsrunden zu reduzieren, bei denen Client und Server versuchen, gemeinsame Commits zu finden. Wenn "false", verlässt sich Git ausschließlich auf die Ref-Anzeige des Servers, um gemeinsame Commits zu finden.
- push.useBitmaps
-
Wenn auf "false" gesetzt, wird die Verwendung von Bitmaps für "git push" deaktiviert, auch wenn
pack.useBitmaps"true" ist, ohne andere Git-Operationen daran zu hindern, Bitmaps zu verwenden. Standard ist true. - rebase.backend
-
Standard-Backend für das Rebasen. Mögliche Optionen sind apply oder merge. In Zukunft, wenn das Merge-Backend alle verbleibenden Fähigkeiten des Apply-Backends erhält, kann diese Einstellung ungenutzt bleiben.
- rebase.stat
-
Ob eine Diffstat der Änderungen angezeigt werden soll, die seit dem letzten Rebase upstream stattgefunden haben. Standardmäßig false.
- rebase.autoSquash
-
Wenn auf true gesetzt, wird die Option
--autosquashvon git-rebase[1] standardmäßig für den interaktiven Modus aktiviert. Dies kann mit der Option--no-autosquashüberschrieben werden. - rebase.autoStash
-
Wenn auf true gesetzt, wird automatisch ein temporärer Stash-Eintrag erstellt, bevor die Operation beginnt, und nach Abschluss der Operation angewendet. Das bedeutet, dass Sie einen Rebase auf einem schmutzigen Arbeitsbaum ausführen können. Verwenden Sie dies jedoch mit Vorsicht: die endgültige Anwendung des Stashes nach einem erfolgreichen Rebase kann zu nicht trivialen Konflikten führen. Diese Option kann durch die Optionen
--no-autostashund--autostashvon git-rebase[1] überschrieben werden. Standard ist false. - rebase.updateRefs
-
Wenn auf true gesetzt, wird die Option
--update-refsstandardmäßig aktiviert. - rebase.missingCommitsCheck
-
Wenn auf "warn" gesetzt, wird git rebase -i eine Warnung ausgeben, wenn einige Commits entfernt werden (z. B. eine Zeile gelöscht wurde), jedoch wird der Rebase fortgesetzt. Wenn auf "error" gesetzt, wird die vorherige Warnung ausgegeben und der Rebase gestoppt. git rebase --edit-todo kann dann verwendet werden, um den Fehler zu korrigieren. Wenn auf "ignore" gesetzt, wird keine Prüfung durchgeführt. Um einen Commit ohne Warnung oder Fehler zu löschen, verwenden Sie den Befehl
dropin der Todo-Liste. Standard ist "ignore". - rebase.instructionFormat
-
Eine Formatzeichenfolge, wie in git-log[1] angegeben, die für die Todo-Liste während eines interaktiven Rebase verwendet wird. Das Format wird automatisch um den Commit-Hash als Präfix ergänzt.
- rebase.abbreviateCommands
-
Wenn auf true gesetzt, verwendet
gitrebaseabgekürzte Befehlsnamen in der Todo-Liste, was zu etwas wie diesem führtp deadbee The oneline of the commit p fa1afe1 The oneline of the next commit ...
anstelle von
pick deadbee The oneline of the commit pick fa1afe1 The oneline of the next commit ...
Standard ist false.
- rebase.rescheduleFailedExec
-
Zeitpläne für fehlgeschlagene
exec-Befehle automatisch neu. Dies ist nur im interaktiven Modus sinnvoll (oder wenn eine Option--execangegeben wurde). Dies ist dasselbe wie die Angabe der Option--reschedule-failed-exec. - rebase.forkPoint
-
Wenn auf false gesetzt, wird die Option
--no-fork-pointstandardmäßig gesetzt. - rebase.rebaseMerges
-
Ob und wie die Option
--rebase-mergesstandardmäßig gesetzt wird. Kannrebase-cousins,no-rebase-cousinsoder ein Boolescher Wert sein. Wenn auf true oderno-rebase-cousinsgesetzt, ist dies äquivalent zu--rebase-merges=no-rebase-cousins, wenn aufrebase-cousinsgesetzt, ist dies äquivalent zu--rebase-merges=rebase-cousins, und wenn auf false gesetzt, ist dies äquivalent zu--no-rebase-merges. Das Übergeben von--rebase-mergesauf der Kommandozeile, mit oder ohne Argument, überschreibt jederebase.rebaseMerges-Konfiguration. - rebase.maxLabelLength
-
Beim Generieren von Labelnamen aus Commit-Betreffzeilen werden die Namen auf diese Länge gekürzt. Standardmäßig werden die Namen auf etwas weniger als
NAME_MAXgekürzt (um z. B. das Schreiben von.lock-Dateien für die entsprechenden losen Referenzen zu ermöglichen). - receive.advertiseAtomic
-
Standardmäßig kündigt git-receive-pack die Fähigkeit "atomic push" seinen Clients an. Wenn Sie diese Fähigkeit nicht ankündigen möchten, setzen Sie diese Variable auf false.
- receive.advertisePushOptions
-
Wenn auf true gesetzt, kündigt git-receive-pack die Fähigkeit "push options" seinen Clients an. Standard ist false.
- receive.autogc
-
Standardmäßig wird "git maintenance run --auto" nach dem Empfang von Daten von git-push und der Aktualisierung von Refs ausgeführt. Sie können dies stoppen, indem Sie diese Variable auf false setzen.
- receive.certNonceSeed
-
Durch Setzen dieser Variable auf eine Zeichenfolge akzeptiert
gitreceive-packeinengitpush--signedund verifiziert ihn mithilfe eines "Nonce", das durch HMAC mit dieser Zeichenfolge als geheimem Schlüssel geschützt ist. - receive.certNonceSlop
-
Wenn ein
gitpush--signedein Push-Zertifikat mit einem "Nonce" sendet, das von einem Receive-Pack, das dasselbe Repository bedient, innerhalb dieser vielen Sekunden ausgestellt wurde, wird der in das Zertifikat gefundene "Nonce" nachGIT_PUSH_CERT_NONCEan die Hooks exportiert (anstelle dessen, was das Receive-Pack die sendende Seite aufforderte einzuschließen). Dies kann das Schreiben von Überprüfungen inpre-receiveundpost-receiveetwas erleichtern. Anstatt die UmgebungsvariableGIT_PUSH_CERT_NONCE_SLOPzu prüfen, die aufzeichnet, um wie viele Sekunden der Nonce veraltet ist, um zu entscheiden, ob sie das Zertifikat akzeptieren wollen, können sie nurGIT_PUSH_CERT_NONCE_STATUSalsOKprüfen. - receive.fsckObjects
-
Wenn auf true gesetzt, prüft git-receive-pack alle empfangenen Objekte. Siehe
transfer.fsckObjectsfür Details, was geprüft wird. Standard ist false. Wenn nicht gesetzt, wird stattdessen der Wert vontransfer.fsckObjectsverwendet. - receive.fsck.<msg-id>
-
Verhält sich wie
fsck.<msg-id>, wird aber von git-receive-pack[1] anstelle von git-fsck[1] verwendet. Siehe die Dokumentation zufsck.<msg-id> für Details. - receive.fsck.skipList
-
Verhält sich wie
fsck.skipList, wird aber von git-receive-pack[1] anstelle von git-fsck[1] verwendet. Siehe die Dokumentation zufsck.skipListfür Details. - receive.keepAlive
-
Nach dem Empfang des Packs vom Client gibt
receive-packwährend der Verarbeitung des Packs möglicherweise keine Ausgabe aus (wenn--quietangegeben wurde), was dazu führen kann, dass einige Netzwerke die TCP-Verbindung trennen. Mit dieser Option, wennreceive-packin dieser Phase keine Daten fürreceive.keepAliveSekunden sendet, sendet es ein kurzes Keepalive-Paket. Der Standardwert ist 5 Sekunden; setzen Sie ihn auf 0, um Keepalives vollständig zu deaktivieren. - receive.unpackLimit
-
Wenn die Anzahl der in einem Push empfangenen Objekte unter diesem Limit liegt, werden die Objekte in lose Objektdateien entpackt. Wenn die Anzahl der empfangenen Objekte dieses Limit erreicht oder überschreitet, wird das empfangene Pack als Pack gespeichert, nachdem fehlende Delta-Basen hinzugefügt wurden. Das Speichern des Packs von einem Push kann den Push-Vorgang beschleunigen, insbesondere auf langsamen Dateisystemen. Wenn nicht gesetzt, wird stattdessen der Wert von
transfer.unpackLimitverwendet. - receive.maxInputSize
-
Wenn die Größe des eingehenden Pack-Streams größer als dieses Limit ist, schlägt git-receive-pack mit einem Fehler fehl, anstatt die Pack-Datei zu akzeptieren. Wenn nicht gesetzt oder auf 0 gesetzt, ist die Größe unbegrenzt.
- receive.denyDeletes
-
Wenn auf true gesetzt, lehnt git-receive-pack eine Ref-Aktualisierung ab, die die Ref löscht. Verwenden Sie dies, um eine solche Ref-Löschung per Push zu verhindern.
- receive.denyDeleteCurrent
-
Wenn auf true gesetzt, lehnt git-receive-pack eine Ref-Aktualisierung ab, die den aktuell ausgecheckten Branch eines nicht-bare Repositorys löscht.
- receive.denyCurrentBranch
-
Wenn auf true oder "refuse" gesetzt, lehnt git-receive-pack eine Ref-Aktualisierung auf den aktuell ausgecheckten Branch eines nicht-bare Repositorys ab. Ein solcher Push ist potenziell gefährlich, da er den HEAD mit dem Index und dem Arbeitsbaum in einen unsynchronisierten Zustand bringt. Wenn auf "warn" gesetzt, wird eine Warnung über einen solchen Push nach stderr ausgegeben, aber der Push wird zugelassen. Wenn auf false oder "ignore" gesetzt, werden solche Pushes ohne Nachricht zugelassen. Standard ist "refuse".
Eine weitere Option ist "updateInstead", die den Arbeitsbaum aktualisiert, wenn in den aktuellen Branch gepusht wird. Diese Option ist dazu gedacht, Arbeitsverzeichnisse zu synchronisieren, wenn eine Seite nicht leicht über interaktives ssh zugänglich ist (z. B. eine Live-Website, daher die Anforderung, dass das Arbeitsverzeichnis sauber ist). Dieser Modus ist auch nützlich, wenn Sie innerhalb einer VM entwickeln, um Code auf verschiedenen Betriebssystemen zu testen und zu beheben.
Standardmäßig lehnt "updateInstead" den Push ab, wenn der Arbeitsbaum oder der Index Unterschiede zum HEAD aufweisen, aber der
push-to-checkoutHook kann verwendet werden, um dies anzupassen. Siehe githooks[5]. - receive.denyNonFastForwards
-
Wenn auf true gesetzt, lehnt git-receive-pack eine Ref-Aktualisierung ab, die kein Fast-Forward ist. Verwenden Sie dies, um eine solche Aktualisierung per Push zu verhindern, selbst wenn der Push erzwungen wird. Diese Konfigurationsvariable wird bei der Initialisierung eines geteilten Repositorys gesetzt.
- receive.hideRefs
-
Diese Variable ist dieselbe wie
transfer.hideRefs, gilt aber nur fürreceive-pack(und betrifft daher Pushes, aber keine Fetches). Ein Versuch, eine versteckte Ref vongitpushzu aktualisieren oder zu löschen, wird abgelehnt. - receive.procReceiveRefs
-
Dies ist eine mehrwertige Variable, die Referenzpräfixe definiert, die mit den Befehlen in
receive-packübereinstimmen. Befehle, die mit den Präfixen übereinstimmen, werden von einem externen Hook "proc-receive" ausgeführt, anstatt von der internen Funktionexecute_commands. Wenn diese Variable nicht definiert ist, wird der Hook "proc-receive" niemals verwendet, und alle Befehle werden von der internen Funktionexecute_commandsausgeführt.Wenn diese Variable beispielsweise auf "refs/for" gesetzt ist, erstellt oder aktualisiert ein Push zu einer Referenz wie "refs/for/master" keine Referenz namens "refs/for/master", kann aber direkt einen Pull-Request erstellen oder aktualisieren, indem der Hook "proc-receive" ausgeführt wird.
Optionale Modifikatoren können am Anfang des Werts angegeben werden, um Befehle für bestimmte Aktionen zu filtern: Erstellen (a), Ändern (m), Löschen (d). Ein
!kann in den Modifikatoren enthalten sein, um den Referenzpräfix-Eintrag zu negieren. Z.B.git config --system --add receive.procReceiveRefs ad:refs/heads git config --system --add receive.procReceiveRefs !:refs/heads
- receive.updateServerInfo
-
Wenn auf true gesetzt, führt git-receive-pack git-update-server-info aus, nachdem Daten von git-push empfangen und Refs aktualisiert wurden.
- receive.shallowUpdate
-
Wenn auf true gesetzt, kann .git/shallow aktualisiert werden, wenn neue Refs neue flache Wurzeln erfordern. Andernfalls werden diese Refs abgelehnt.
- reftable.blockSize
-
Die Größe in Bytes, die das Reftable-Backend beim Schreiben von Blöcken verwendet. Die Blockgröße wird vom Schreiber bestimmt und muss keine Zweierpotenz sein. Die Blockgröße muss länger als der längste Referenzname oder der längste Logeintrag im Repository sein, da Referenzen Blöcke nicht überspannen dürfen.
Es werden Zweierpotenzen empfohlen, die für das virtuelle Speichersystem oder das Dateisystem günstig sind (wie 4 kB oder 8 kB). Größere Größen (64 kB) können eine bessere Komprimierung erzielen, mit möglicherweise erhöhten Kosten für Leser beim Zugriff.
Die größte Blockgröße beträgt
16777215Bytes (15,99 MiB). Der Standardwert beträgt4096Bytes (4 kB). Ein Wert von0verwendet den Standardwert. - reftable.restartInterval
-
Das Intervall, in dem Restart-Punkte erstellt werden. Das Reftable-Backend bestimmt die Restart-Punkte bei Dateierstellung. Alle 16 sind möglicherweise besser für kleinere Blockgrößen (4k oder 8k) geeignet, alle 64 für größere Blockgrößen (64k).
Häufigere Restart-Punkte reduzieren die Präfixkomprimierung und erhöhen den Speicherverbrauch der Restart-Tabelle, was beides die Dateigröße erhöht.
Weniger häufige Restart-Punkte machen die Präfixkomprimierung effektiver und reduzieren die Gesamtdateigröße, was zu erhöhten Strafen für Leser führt, die nach dem Binärsuchschritt mehr Datensätze durchlaufen müssen.
Maximal
65535Restart-Punkte pro Block werden unterstützt.Der Standardwert ist, alle 16 Datensätze Restart-Punkte zu erstellen. Ein Wert von
0verwendet den Standardwert. - reftable.indexObjects
-
Ob das Reftable-Backend Objektblöcke schreiben soll. Objektblöcke sind eine umgekehrte Zuordnung von Objekt-IDs zu den Referenzen, die auf sie verweisen.
Der Standardwert ist
true. - reftable.geometricFactor
-
Immer wenn das Reftable-Backend einen neuen Tisch zum Stapel hinzufügt, führt es eine automatische Komprimierung durch, um sicherzustellen, dass nur eine Handvoll Tische vorhanden sind. Das Backend tut dies, indem es sicherstellt, dass die Tische eine geometrische Folge in Bezug auf die jeweiligen Größen jedes Tisches bilden.
Standardmäßig verwendet die geometrische Folge einen Faktor von 2, was bedeutet, dass für jeden Tisch der nächstgrößere Tisch mindestens doppelt so groß sein muss. Ein maximaler Faktor von 256 wird unterstützt.
- reftable.lockTimeout
-
Immer wenn das Reftable-Backend einen neuen Tisch zum Stapel hinzufügt, muss es die zentrale Datei "tables.list" sperren, bevor es sie aktualisiert. Diese Konfiguration steuert, wie lange der Prozess wartet, um die Sperre zu erlangen, falls ein anderer Prozess sie bereits erworben hat. Ein Wert von 0 bedeutet, gar nicht zu versuchen; -1 bedeutet, unbegrenzt zu versuchen. Standard ist 100 (d.h. 100ms lang versuchen).
- remote.pushDefault
-
Der Remote-Server, zu dem standardmäßig gepusht wird. Überschreibt
branch.<name>.remotefür alle Branches und wird vonbranch.<name>.pushRemotefür bestimmte Branches überschrieben. - remote.<name>.url
-
Die URL eines entfernten Repositorys. Siehe git-fetch[1] oder git-push[1]. Ein konfigurierter Remote kann mehrere URLs haben; in diesem Fall wird die erste zum Abrufen verwendet und alle werden zum Pushen verwendet (vorausgesetzt, es ist keine
remote.<name>.pushurldefiniert). Das Setzen dieses Schlüssels auf eine leere Zeichenkette löscht die Liste der URLs und ermöglicht Ihnen, frühere Konfigurationen zu überschreiben. - remote.<name>.pushurl
-
Die Push-URL eines entfernten Repositorys. Siehe git-push[1]. Wenn eine
pushurl-Option in einem konfigurierten Remote vorhanden ist, wird sie zum Pushen anstelle vonremote.<name>.urlverwendet. Ein konfigurierter Remote kann mehrere Push-URLs haben; in diesem Fall wird zu allen gepusht. Das Setzen dieses Schlüssels auf eine leere Zeichenkette löscht die Liste der URLs und ermöglicht Ihnen, frühere Konfigurationen zu überschreiben. - remote.<name>.proxy
-
Für Remotes, die curl erfordern (http, https und ftp), die URL des zu verwendenden Proxys für diesen Remote. Auf eine leere Zeichenkette gesetzt, um die Proxy-Nutzung für diesen Remote zu deaktivieren.
- remote.<name>.proxyAuthMethod
-
Für Remotes, die curl erfordern (http, https und ftp), die Methode zur Authentifizierung gegen den verwendeten Proxy (wahrscheinlich gesetzt in
remote.<name>.proxy). Siehehttp.proxyAuthMethod. - remote.<name>.fetch
-
Der Standard-Satz von "Refspec" für git-fetch[1]. Siehe git-fetch[1].
- remote.<name>.push
-
Der Standard-Satz von "Refspec" für git-push[1]. Siehe git-push[1].
- remote.<name>.mirror
-
Wenn true, verhält sich das Pushen zu diesem Remote automatisch so, als ob die Option
--mirrorauf der Kommandozeile angegeben wurde. - remote.<name>.skipDefaultUpdate
-
Ein veraltetes Synonym für
remote.<name>.skipFetchAll(wenn beide in den Konfigurationsdateien mit unterschiedlichen Werten gesetzt sind, wird der Wert des letzten Vorkommens verwendet). - remote.<name>.skipFetchAll
-
Wenn true, wird dieser Remote beim Aktualisieren mit git-fetch[1], dem Unterbefehl
updatevon git-remote[1], übersprungen und von der Prefetch-Aufgabe vongitmaintenanceignoriert. - remote.<name>.receivepack
-
Das Standardprogramm, das auf der Remote-Seite beim Pushen ausgeführt wird. Siehe Option --receive-pack von git-push[1].
- remote.<name>.uploadpack
-
Das Standardprogramm, das auf der Remote-Seite beim Abrufen ausgeführt wird. Siehe Option --upload-pack von git-fetch-pack[1].
- remote.<name>.tagOpt
-
Das Setzen dieses Werts auf --no-tags deaktiviert die automatische Tag-Verfolgung beim Abrufen von Remote <name>. Das Setzen auf --tags ruft jeden Tag von Remote <name> ab, auch wenn er nicht von Remote-Branch-Heads erreichbar ist. Das Übergeben dieser Flags direkt an git-fetch[1] kann diese Einstellung überschreiben. Siehe Optionen --tags und --no-tags von git-fetch[1].
- remote.<name>.vcs
-
Das Setzen dieses Werts auf einen Wert <vcs> bewirkt, dass Git mit dem Helper git-remote-<vcs> mit dem Remote interagiert.
- remote.<name>.prune
-
Wenn auf true gesetzt, wird das Abrufen von diesem Remote standardmäßig auch alle Remote-Tracking-Referenzen entfernen, die auf dem Remote nicht mehr existieren (als ob die Option
--pruneauf der Kommandozeile angegeben worden wäre). Überschreibt ggf. diefetch.prune-Einstellungen. - remote.<name>.pruneTags
-
Wenn auf true gesetzt, werden beim Abrufen von diesem Remote standardmäßig auch alle lokalen Tags entfernt, die auf dem Remote nicht mehr existieren, wenn das Pruning allgemein über
remote.<name>.prune,fetch.pruneoder--pruneaktiviert ist. Überschreibt ggf. diefetch.pruneTags-Einstellungen.Siehe auch
remote.<name>.pruneund den Abschnitt PRUNING in git-fetch[1]. - remote.<name>.promisor
-
Wenn auf true gesetzt, wird dieser Remote zum Abrufen von Promisor-Objekten verwendet.
- remote.<name>.partialclonefilter
-
Der Filter, der beim Abrufen von diesem Promisor-Remote angewendet wird. Das Ändern oder Löschen dieses Werts wirkt sich nur auf Abrufe neuer Commits aus. Um zugehörige Objekte für bereits im lokalen Objekt-Repository vorhandene Commits abzurufen, verwenden Sie die Option
--refetchvon git-fetch[1]. - remote.<name>.serverOption
-
Der Standard-Satz von Serveroptionen, die beim Abrufen von diesem Remote verwendet werden. Diese Serveroptionen können durch die Kommandozeilenargumente
--server-option=überschrieben werden.Dies ist eine mehrwertige Variable, und ein leerer Wert kann in einer Konfigurationsdatei mit höherer Priorität (z. B.
.git/configin einem Repository) verwendet werden, um Werte zu löschen, die von Konfigurationsdateien mit niedrigerer Priorität (z. B.$HOME/.gitconfig) geerbt wurden. - remote.<name>.followRemoteHEAD
-
Wie git-fetch[1] mit Aktualisierungen von
remotes/<name>/HEADumgehen soll, wenn mit den konfigurierten Refspecs eines Remotes abgerufen wird. Der Standardwert ist "create", derremotes/<name>/HEADerstellt, wenn er auf dem Remote existiert, aber nicht lokal; dies berührt keine bereits vorhandene lokale Referenz. Wenn es auf "warn" gesetzt ist, wird eine Meldung ausgegeben, wenn der Remote einen anderen Wert als der lokale hat; wenn keine lokale Referenz vorhanden ist, verhält es sich wie "create". Eine Variante von "warn" ist "warn-if-not-$branch", die sich wie "warn" verhält, aber wennHEADauf dem Remote$branchist, wird sie stillschweigend durchgeführt. Wenn es auf "always" gesetzt ist, wirdremotes/<name>/HEADstillschweigend auf den Wert auf dem Remote aktualisiert. Schließlich wird es, wenn es auf "never" gesetzt ist, niemals die lokale Referenz ändern oder erstellen. - remotes.<group>
-
Die Liste der Remotes, die von "git remote update <group>" abgerufen werden. Siehe git-remote[1].
- repack.useDeltaBaseOffset
-
Standardmäßig erstellt git-repack[1] Packs, die Delta-Basis-Offsets verwenden. Wenn Sie Ihr Repository mit Git älter als Version 1.4.4 teilen müssen, entweder direkt oder über ein Dumb-Protokoll wie HTTP, dann müssen Sie diese Option auf "false" setzen und neu verpacken. Der Zugriff von alten Git-Versionen über das native Protokoll wird von dieser Option nicht beeinflusst.
- repack.packKeptObjects
-
Wenn auf true gesetzt, verhält sich
gitrepackso, als ob--pack-kept-objectsübergeben wurde. Siehe git-repack[1] für Details. Standard ist normalerweisefalse, abertrue, wenn ein Bitmap-Index geschrieben wird (entweder über--write-bitmap-indexoderrepack.writeBitmaps). - repack.useDeltaIslands
-
Wenn auf true gesetzt, verhält sich
gitrepackso, als ob--delta-islandsübergeben wurde. Standard istfalse. - repack.writeBitmaps
-
Wenn true, schreibt Git einen Bitmap-Index, wenn alle Objekte auf die Festplatte gepackt werden (z.B. wenn
gitrepack-aausgeführt wird). Dieser Index kann die Phase "Objekte zählen" für nachfolgende Packs, die für Klone und Fetches erstellt werden, beschleunigen, auf Kosten von etwas Speicherplatz und zusätzlicher Zeit für das anfängliche Neuverpacken. Dies hat keine Auswirkung, wenn mehrere Packdateien erstellt werden. Standard ist true bei bare Repositories, sonst false. - repack.updateServerInfo
-
Wenn auf false gesetzt, führt git-repack[1] git-update-server-info[1] nicht aus. Standard ist true. Kann überschrieben werden, wenn true, durch die Option
-nvon git-repack[1]. - repack.cruftWindow
- repack.cruftWindowMemory
- repack.cruftDepth
- repack.cruftThreads
-
Parameter, die von git-pack-objects[1] bei der Erzeugung eines Cruft-Packs verwendet werden und die entsprechenden Parameter nicht über die Kommandozeile übergeben werden. Siehe ähnlich benannte
pack.*-Konfigurationsvariablen für Standardwerte und Bedeutung. - repack.midxMustContainCruft
-
Wenn true gesetzt, schließt git-repack[1] bedingungslos Cruft-Packs ein, falls vorhanden, in den Multi-Pack-Index, wenn es mit
--write-midxaufgerufen wird. Wenn false, werden Cruft-Packs nur in den MIDX aufgenommen, wenn nötig (z.B. weil sie erforderlich sein könnten, um mit MIDX-Bitmaps eine Erreichbarkeitschlussbildung zu bilden). Standard ist true. - rerere.autoUpdate
-
Wenn auf true gesetzt, aktualisiert
git-rerereden Index mit den resultierenden Inhalten, nachdem es Konflikte mit zuvor aufgezeichneten Auflösungen erfolgreich behoben hat. Standard ist false. - rerere.enabled
-
Aktiviert die Aufzeichnung von gelösten Konflikten, damit identische Konflikt-Hunks erneut automatisch aufgelöst werden können, falls sie wieder auftreten. Standardmäßig ist git-rerere[1] aktiviert, wenn ein
rr-cache-Verzeichnis unter$GIT_DIRvorhanden ist, z.B. wenn "rerere" zuvor im Repository verwendet wurde. - revert.reference
-
Das Setzen dieser Variablen auf true lässt
gitrevertso verhalten, als ob die Option--referenceangegeben wurde. - safe.bareRepository
-
Gibt an, mit welchen Bare-Repositories Git arbeiten wird. Die derzeit unterstützten Werte sind
-
all: Git arbeitet mit allen Bare-Repositories. Dies ist der Standard. -
explicit: Git arbeitet nur mit Bare-Repositories, die über die Top-Level--git-dirKommandozeilenoption oder dieGIT_DIRUmgebungsvariable angegeben wurden (siehe git[1]).Wenn Sie in Ihrem Workflow keine Bare-Repositories verwenden, kann es vorteilhaft sein,
safe.bareRepositoryin Ihrer globalen Konfiguration aufexplicitzu setzen. Dies schützt Sie vor Angriffen, die das Klonen eines Repositorys beinhalten, das ein Bare-Repository enthält, und das Ausführen eines Git-Befehls in diesem Verzeichnis.Diese Konfigurationseinstellung wird nur in geschützter Konfiguration berücksichtigt (siehe SCOPES). Dies verhindert, dass nicht vertrauenswürdige Repositories diesen Wert manipulieren.
-
- safe.directory
-
Diese Konfigurationseinträge geben Git-getrackte Verzeichnisse an, die als sicher gelten, auch wenn sie jemand anderem als dem aktuellen Benutzer gehören. Standardmäßig weigert sich Git, die Git-Konfiguration eines Repositorys, das jemand anderem gehört, überhaupt zu parsen, geschweige denn seine Hooks auszuführen. Diese Konfigurationseinstellung ermöglicht es Benutzern, Ausnahmen anzugeben, z.B. für absichtlich geteilte Repositories (siehe die
--shared-Option in git-init[1]).Dies ist eine mehrwertige Einstellung, d.h. Sie können weitere Verzeichnisse über
gitconfig--addhinzufügen. Um die Liste der sicheren Verzeichnisse zurückzusetzen (z.B. um solche Verzeichnisse zu überschreiben, die in der Systemkonfiguration angegeben sind), fügen Sie einensafe.directory-Eintrag mit einem leeren Wert hinzu.Diese Konfigurationseinstellung wird nur in geschützter Konfiguration berücksichtigt (siehe SCOPES). Dies verhindert, dass nicht vertrauenswürdige Repositories diesen Wert manipulieren.
Der Wert dieser Einstellung wird interpoliert, d.h.
~/<path> wird zu einem Pfad relativ zum Home-Verzeichnis erweitert und%(prefix)/<path> wird zu einem Pfad relativ zum (Laufzeit-)Präfix von Git erweitert.Um diese Sicherheitsprüfung vollständig zu umgehen, setzen Sie
safe.directoryauf die Zeichenkette*. Dies erlaubt, dass alle Repositories so behandelt werden, als wäre ihr Verzeichnis in der Listesafe.directoryaufgeführt. Wennsafe.directory=*in der Systemkonfiguration gesetzt ist und Sie diesen Schutz wieder aktivieren möchten, initialisieren Sie Ihre Liste mit einem leeren Wert, bevor Sie die Repositories auflisten, die Sie als sicher erachten. Die Angabe eines Verzeichnisses mit angehängtem/*erlaubt den Zugriff auf alle Repositories unter dem angegebenen Verzeichnis.Wie erläutert, erlaubt Git standardmäßig nur den Zugriff auf Repositories, die Ihnen selbst gehören, d.h. dem Benutzer, der Git ausführt. Wenn Git jedoch unter root auf einer nicht-Windows-Plattform mit sudo ausgeführt wird, prüft Git die Umgebungsvariable SUDO_UID, die von sudo erstellt wird, und erlaubt zusätzlich zur ID von root auch den Zugriff auf die dort gespeicherte UID. Dies soll eine häufige Abfolge während der Installation erleichtern: "make && sudo make install". Ein Git-Prozess, der unter sudo läuft, wird als root ausgeführt, aber der sudo-Befehl exportiert die Umgebungsvariable, um die ID des ursprünglichen Benutzers zu speichern. Wenn Sie dies nicht wünschen und möchten, dass Git nur Repositories vertraut, die root gehören, können Sie die Variable
SUDO_UIDaus der Umgebung von root entfernen, bevor Sie git aufrufen. - sendemail.identity
-
Eine Konfigurationsidentität. Wenn angegeben, werden Werte im Abschnitt
sendemail.<identity> vor Werten im Abschnittsendemailbevorzugt. Die Standardidentität ist der Wert vonsendemail.identity. - sendemail.smtpEncryption
-
Siehe git-send-email[1] für die Beschreibung. Beachten Sie, dass diese Einstellung nicht dem
identity-Mechanismus unterliegt. - sendemail.smtpSSLCertPath
-
Pfad zu CA-Zertifikaten (entweder ein Verzeichnis oder eine einzelne Datei). Setzen Sie ihn auf eine leere Zeichenkette, um die Zertifikatüberprüfung zu deaktivieren.
- sendemail.<identity>.*
-
Identitätsspezifische Versionen der unten aufgeführten
sendemail.*Parameter, die diese überschreiben, wenn diese Identität ausgewählt wird, entweder über die Kommandozeile odersendemail.identity. - sendemail.multiEdit
-
Wenn
true(Standard), wird eine einzige Editor-Instanz gestartet, um Dateien zu bearbeiten, die Sie bearbeiten müssen (Patches bei Verwendung von--annotateund die Zusammenfassung bei Verwendung von--compose). Wennfalse, werden Dateien nacheinander bearbeitet, wobei jedes Mal ein neuer Editor gestartet wird. - sendemail.confirm
-
Legt den Standardwert für die Bestätigung vor dem Senden fest. Muss einer der Werte
always,never,cc,composeoderautosein. Siehe--confirmin der Dokumentation zu git-send-email[1] für die Bedeutung dieser Werte. - sendemail.mailmap
-
Wenn
true, geht git-send-email[1] davon aus, dass--mailmapverwendet wird, andernfalls wird--no-mailmapangenommen. Standard istfalse. - sendemail.mailmap.file
-
Der Speicherort einer git-send-email[1]-spezifischen ergänzenden Mailmap-Datei. Die Standard-Mailmap und
mailmap.filewerden zuerst geladen. Einträge in dieser Datei haben daher Vorrang vor Einträgen an den Standard-Mailmap-Speicherorten. Siehe gitmailmap[5]. - sendemail.mailmap.blob
-
Ähnlich wie
sendemail.mailmap.file, aber der Wert wird als Referenz auf ein Blob im Repository betrachtet. Einträge insendemail.mailmap.filehaben Vorrang vor Einträgen hier. Siehe gitmailmap[5]. - sendemail.aliasesFile
-
Um die Eingabe langer E-Mail-Adressen zu vermeiden, verweisen Sie hier auf eine oder mehrere E-Mail-Aliasdateien. Sie müssen auch
sendemail.aliasFileTypeangeben. - sendemail.aliasFileType
-
Format der in sendemail.aliasesFile angegebenen Datei(en). Muss einer der folgenden Werte sein:
mutt,mailrc,pine,elm,gnusodersendmail.Wie eine Aliasdatei in jedem Format aussieht, kann in der Dokumentation des E-Mail-Programms mit demselben Namen gefunden werden. Die Unterschiede und Einschränkungen gegenüber den Standardformaten sind unten beschrieben.
- sendmail
-
-
Anführungszeichen-Aliase und Anführungszeichen-Adressen werden nicht unterstützt: Zeilen, die ein
"-Symbol enthalten, werden ignoriert. -
Weiterleitung an eine Datei (
/path/name) oder an eine Pipe (|command) wird nicht unterstützt. -
Dateien einbinden (
:include:/path/name) wird nicht unterstützt. -
Warnungen werden auf der Standardfehlerausgabe für explizit nicht unterstützte Konstrukte ausgegeben, sowie für jede andere Zeile, die vom Parser nicht erkannt wird.
-
- sendemail.annotate
- sendemail.bcc
- sendemail.cc
- sendemail.ccCmd
- sendemail.chainReplyTo
- sendemail.envelopeSender
- sendemail.from
- sendemail.headerCmd
- sendemail.signedOffByCc
- sendemail.smtpPass
- sendemail.suppressCc
- sendemail.suppressFrom
- sendemail.to
- sendemail.toCmd
- sendemail.smtpDomain
- sendemail.smtpServer
- sendemail.smtpServerPort
- sendemail.smtpServerOption
- sendemail.smtpUser
- sendemail.imapSentFolder
- sendemail.useImapOnly
- sendemail.thread
- sendemail.transferEncoding
- sendemail.validate
- sendemail.xmailer
-
Diese Konfigurationsvariablen bieten alle einen Standardwert für die Kommandozeilenoptionen von git-send-email[1]. Siehe dessen Dokumentation für Details.
- sendemail.outlookidfix
-
Wenn
true, geht git-send-email[1] davon aus, dass--outlook-id-fixverwendet wird, und wennfalse, geht es davon aus, dass--no-outlook-id-fixverwendet wird. Wenn nicht angegeben, verhält es sich so, als ob--outlook-id-fixnicht angegeben wurde. - sendemail.signedOffCc (deprecated)
-
Veraltetes Alias für
sendemail.signedOffByCc. - sendemail.smtpBatchSize
-
Anzahl der pro Verbindung zu sendenden Nachrichten, danach erfolgt ein erneutes Einloggen. Wenn der Wert
0oder undefiniert ist, werden alle Nachrichten in einer Verbindung gesendet. Siehe auch die Option--batch-sizevon git-send-email[1]. - sendemail.smtpReloginDelay
-
Sekunden Wartezeit vor der Wiederverbindung zum SMTP-Server. Siehe auch die Option
--relogin-delayvon git-send-email[1]. - sendemail.forbidSendmailVariables
-
Um häufige Fehlkonfigurationen zu vermeiden, bricht git-send-email[1] mit einer Warnung ab, wenn Konfigurationsoptionen für
sendmailvorhanden sind. Setzen Sie diese Variable, um die Prüfung zu umgehen. - sequence.editor
-
Texteditor, der von
gitrebase-izum Bearbeiten der Rebase-Instruktionsdatei verwendet wird. Der Wert ist so zu interpretieren, dass er von der Shell verwendet wird, wenn er aufgerufen wird. Er kann durch die UmgebungsvariableGIT_SEQUENCE_EDITORüberschrieben werden. Wenn nicht konfiguriert, wird stattdessen der Standard-Editor für Commit-Nachrichten verwendet. - showBranch.default
-
Die Standardmenge an Verzweigungen für git-show-branch[1]. Siehe git-show-branch[1].
- sparse.expectFilesOutsideOfPatterns
-
Typischerweise werden bei Sparse Checkouts Dateien, die keinem Sparsity-Muster entsprechen, mit einem SKIP_WORKTREE-Bit im Index markiert und fehlen im Arbeitsverzeichnis. Dementsprechend prüft Git normalerweise, ob Dateien mit dem SKIP_WORKTREE-Bit tatsächlich im Arbeitsverzeichnis vorhanden sind, entgegen den Erwartungen. Wenn Git welche findet, markiert es diese Pfade als vorhanden, indem es die entsprechenden SKIP_WORKTREE-Bits löscht. Diese Option kann verwendet werden, um Git mitzuteilen, dass solche vorhandenen-trotz-übersprungener-Dateien erwartet werden und Git aufhören soll, danach zu suchen.
Der Standardwert ist
false, was es Git ermöglicht, automatisch aus der Liste der Dateien im Index und im Arbeitsverzeichnis, die nicht synchron sind, wiederherzustellen.Setzen Sie diese Option auf
true, wenn Sie sich in einer Konfiguration befinden, in der ein externer Faktor Git von der Verantwortung für die Aufrechterhaltung der Konsistenz zwischen der Anwesenheit von Dateien im Arbeitsverzeichnis und den Sparsity-Mustern entbindet. Wenn Sie beispielsweise ein Git-freundliches virtuelles Dateisystem haben, das einen robusten Mechanismus zur Aktualisierung des Arbeitsverzeichnisses und der Sparsity-Muster basierend auf Zugriffsmustern besitzt.Unabhängig von dieser Einstellung prüft Git nicht auf vorhandene-trotz-übersprungene-Dateien, es sei denn, Sparse Checkout ist aktiviert. Diese Konfigurationsoption hat also keine Auswirkung, es sei denn,
core.sparseCheckoutisttrue. - splitIndex.maxPercentChange
-
Wenn die Split-Index-Funktion verwendet wird, gibt dies den Prozentsatz der Einträge an, die der Split-Index im Verhältnis zur Gesamtzahl der Einträge sowohl im Split-Index als auch im gemeinsamen Index enthalten kann, bevor ein neuer gemeinsamer Index geschrieben wird. Der Wert sollte zwischen 0 und 100 liegen. Wenn der Wert 0 ist, wird immer ein neuer gemeinsamer Index geschrieben; wenn er 100 ist, wird nie ein neuer gemeinsamer Index geschrieben. Standardmäßig ist der Wert 20, sodass ein neuer gemeinsamer Index geschrieben wird, wenn die Anzahl der Einträge im Split-Index mehr als 20 Prozent der Gesamtzahl der Einträge betragen würde. Siehe git-update-index[1].
-
Wenn die Split-Index-Funktion verwendet wird, werden gemeinsame Indexdateien, die seit dem Zeitpunkt, den diese Variable angibt, nicht mehr geändert wurden, entfernt, wenn eine neue gemeinsame Indexdatei erstellt wird. Der Wert "now" (jetzt) löscht alle Einträge sofort und "never" (nie) unterdrückt die Löschung vollständig. Der Standardwert ist "2.weeks.ago" (vor 2 Wochen). Beachten Sie, dass eine gemeinsame Indexdatei als geändert betrachtet wird (für die Zwecke der Löschung), jedes Mal, wenn eine neue Split-Index-Datei entweder darauf basiert oder von ihr gelesen wird. Siehe git-update-index[1].
- ssh.variant
-
Standardmäßig ermittelt Git die zu verwendenden Kommandozeilenargumente basierend auf dem Basisnamen des konfigurierten SSH-Befehls (konfiguriert über die Umgebungsvariable
GIT_SSHoderGIT_SSH_COMMANDoder die Konfigurationseinstellungcore.sshCommand). Wenn der Basisname nicht erkannt wird, versucht Git, die Unterstützung von OpenSSH-Optionen zu erkennen, indem es zuerst den konfigurierten SSH-Befehl mit der Option-G(Konfiguration anzeigen) aufruft und anschließend OpenSSH-Optionen (wenn dies erfolgreich ist) oder keine Optionen außer dem Host und dem Remote-Befehl (wenn es fehlschlägt) verwendet.Die Konfigurationsvariable
ssh.variantkann gesetzt werden, um diese Erkennung zu überschreiben. Gültige Werte sindssh(zum Verwenden von OpenSSH-Optionen),plink,putty,tortoiseplink,simple(keine Optionen außer Host und Remote-Befehl). Die Standard-Autoerkennung kann explizit mit dem Wertautoangefordert werden. Jeder andere Wert wird alssshbehandelt. Diese Einstellung kann auch über die UmgebungsvariableGIT_SSH_VARIANTüberschrieben werden.Die aktuellen Kommandozeilenparameter für jede Variante sind wie folgt:
-
ssh- [-p port] [-4] [-6] [-o option] [username@]host command -
simple- [username@]host command -
plinkoderputty- [-P port] [-4] [-6] [username@]host command -
tortoiseplink- [-P port] [-4] [-6] -batch [username@]host command
Mit Ausnahme der
simple-Variante werden sich die Kommandozeilenparameter wahrscheinlich ändern, wenn Git neue Funktionen erhält. -
stash.index-
Wenn dies auf true gesetzt ist, verhalten sich
gitstashapplyundgitstashpopso, als ob--indexübergeben worden wäre. Standardmäßig false. Siehe die Beschreibungen in git-stash[1].Dies wirkt sich auch auf Aufrufe von git-stash[1] über
--autostashvon Befehlen wie git-merge[1], git-rebase[1] und git-pull[1] aus. stash.showIncludeUntracked-
Wenn dies auf true gesetzt ist, zeigt der Befehl
gitstashshowdie nicht verfolgten Dateien eines Stash-Eintrags an. Standardmäßig false. Siehe die Beschreibung des Befehls 'show' in git-stash[1]. stash.showPatch-
Wenn dies auf true gesetzt ist, zeigt der Befehl
gitstashshowohne Option den Stash-Eintrag im Patch-Format an. Standardmäßig false. Siehe die Beschreibung des Befehls 'show' in git-stash[1]. stash.showStat-
Wenn dies auf true gesetzt ist, zeigt der Befehl
gitstashshowohne Option einen Diffstat des Stash-Eintrags an. Standardmäßig true. Siehe die Beschreibung des Befehls 'show' in git-stash[1]. - status.relativePaths
-
Standardmäßig zeigt git-status[1] Pfade relativ zum aktuellen Verzeichnis an. Wenn diese Variable auf
falsegesetzt wird, werden Pfade relativ zum Repository-Stammverzeichnis angezeigt (dies war der Standard für Git vor Version 1.5.4). - status.short
-
Auf true setzen, um --short standardmäßig in git-status[1] zu aktivieren. Die Option --no-short hat Vorrang vor dieser Variablen.
- status.branch
-
Auf true setzen, um --branch standardmäßig in git-status[1] zu aktivieren. Die Option --no-branch hat Vorrang vor dieser Variablen.
- status.aheadBehind
-
Auf true setzen, um
--ahead-behindzu aktivieren und auf false, um--no-ahead-behindstandardmäßig in git-status[1] für Nicht-Porcelain-Statusformate zu aktivieren. Standardmäßig true. - status.displayCommentPrefix
-
Wenn auf true gesetzt, fügt git-status[1] vor jeder Ausgabeverzeile ein Kommentarpräfix ein (beginnend mit
core.commentChar, d. h. standardmäßig#). Dies war das Verhalten von git-status[1] in Git 1.8.4 und früheren Versionen. Standardmäßig false. - status.renameLimit
-
Die Anzahl der Dateien, die bei der Erkennung von Umbenennungen in git-status[1] und git-commit[1] berücksichtigt werden. Standardmäßig der Wert von diff.renameLimit.
- status.renames
-
Ob und wie Git Umbenennungen in git-status[1] und git-commit[1] erkennt. Wenn auf "false" gesetzt, ist die Umbenennungserkennung deaktiviert. Wenn auf "true" gesetzt, ist eine grundlegende Umbenennungserkennung aktiviert. Wenn auf "copies" oder "copy" gesetzt, erkennt Git auch Kopien. Standardmäßig der Wert von diff.renames.
- status.showStash
-
Wenn dies auf true gesetzt ist, zeigt git-status[1] die Anzahl der aktuell verstauten Einträge an. Standardmäßig false.
- status.showUntrackedFiles
-
Standardmäßig zeigen git-status[1] und git-commit[1] Dateien an, die derzeit nicht von Git verfolgt werden. Verzeichnisse, die nur nicht verfolgte Dateien enthalten, werden nur mit dem Verzeichnisnamen angezeigt. Das Anzeigen nicht verfolgter Dateien bedeutet, dass Git alle Dateien im gesamten Repository lstat() muss, was auf einigen Systemen langsam sein kann. Daher steuert diese Variable, wie die Befehle nicht verfolgte Dateien anzeigen. Mögliche Werte sind:
-
no- Keine nicht verfolgten Dateien anzeigen. -
normal- Nicht verfolgte Dateien und Verzeichnisse anzeigen. -
all- Auch einzelne Dateien in nicht verfolgten Verzeichnissen anzeigen.
Wenn diese Variable nicht angegeben ist, ist der Standardwert *normal*. Alle üblichen Schreibweisen für den booleschen Wert
truewerden alsnormalundfalsealsnointerpretiert. Diese Variable kann mit der Option -u|--untracked-files von git-status[1] und git-commit[1] überschrieben werden. -
- status.submoduleSummary
-
Standardmäßig false. Wenn dies auf eine Zahl ungleich Null oder true (identisch mit -1 oder einer unbegrenzten Anzahl) gesetzt ist, wird die Submodulübersicht aktiviert und eine Zusammenfassung der Commits für geänderte Submodule angezeigt (siehe --summary-limit Option von git-submodule[1]). Bitte beachten Sie, dass der Befehl zur Ausgabe einer Zusammenfassung für alle Submodule unterdrückt wird, wenn
diff.ignoreSubmodulesauf *all* gesetzt ist, oder nur für diejenigen Submodule, für diesubmodule.<name>.ignore=allgilt. Die einzige Ausnahme von dieser Regel ist, dass Status und Commit gestagte Submodule-Änderungen anzeigen. Um auch die Zusammenfassung für ignorierte Submodule anzuzeigen, können Sie entweder die Kommandozeilenoption --ignore-submodules=dirty oder den Befehl *git submodule summary* verwenden, der eine ähnliche Ausgabe anzeigt, aber diese Einstellungen nicht berücksichtigt. - submodule.<name>.url
-
Die URL für ein Submodul. Diese Variable wird von der .gitmodules-Datei über git submodule init in die Git-Konfiguration kopiert. Der Benutzer kann die konfigurierte URL ändern, bevor das Submodul über git submodule update bezogen wird. Wenn weder submodule.<name>.active noch submodule.active gesetzt sind, wird die Anwesenheit dieser Variable als Fallback verwendet, um anzugeben, ob das Submodul für Git-Befehle von Interesse ist. Siehe git-submodule[1] und gitmodules[5] für Details.
- submodule.<name>.update
-
Die Methode, mit der ein Submodul durch git submodule update aktualisiert wird, was der einzige betroffene Befehl ist; andere wie git checkout --recurse-submodules sind nicht betroffen. Sie existiert aus historischen Gründen, als git submodule der einzige Befehl zur Interaktion mit Submodulen war; Einstellungen wie
submodule.activeundpull.rebasesind spezifischer. Sie wird vongitsubmoduleinitaus der gitmodules[5]-Datei gefüllt. Siehe Beschreibung des Befehls update in git-submodule[1]. - submodule.<name>.branch
-
Der Remote-Branch-Name für ein Submodul, der von
gitsubmoduleupdate--remoteverwendet wird. Setzen Sie diese Option, um den Wert in der.gitmodules-Datei zu überschreiben. Siehe git-submodule[1] und gitmodules[5] für Details. - submodule.<name>.fetchRecurseSubmodules
-
Diese Option kann verwendet werden, um das rekursive Abrufen dieses Submoduls zu steuern. Sie kann durch die Verwendung der Kommandozeilenoption --[no-]recurse-submodules zu "git fetch" und "git pull" überschrieben werden. Diese Einstellung überschreibt die Einstellung in der gitmodules[5]-Datei.
- submodule.<name>.ignore
-
Definiert unter welchen Umständen "git status" und die Diff-Familie ein Submodul als geändert anzeigen. Wenn auf "all" gesetzt, wird es niemals als geändert betrachtet (aber es wird dennoch in der Ausgabe von Status und Commit angezeigt, wenn es gestaged wurde), "dirty" ignoriert alle Änderungen am Arbeitsverzeichnis des Submoduls und berücksichtigt nur Unterschiede zwischen dem HEAD des Submoduls und dem im Superprojekt aufgezeichneten Commit. "untracked" lässt zusätzlich Submodule mit geänderten verfolgten Dateien in ihrem Arbeitsverzeichnis als geändert erscheinen. Die Verwendung von "none" (Standard, wenn diese Option nicht gesetzt ist) zeigt auch Submodule mit nicht verfolgten Dateien in ihrem Arbeitsverzeichnis als geändert an. Diese Einstellung überschreibt jede in .gitmodules für dieses Submodul getroffene Einstellung, beide Einstellungen können auf der Kommandozeile durch die Option "--ignore-submodules" überschrieben werden. Die git submodule Befehle werden von dieser Einstellung nicht beeinflusst.
- submodule.<name>.active
-
Boolescher Wert, der angibt, ob das Submodul für Git-Befehle von Interesse ist. Diese Konfigurationsoption hat Vorrang vor der Konfigurationsoption submodule.active. Siehe gitsubmodules[7] für Details.
- submodule.active
-
Ein wiederholtes Feld, das einen Pfadspezifikation enthält, die auf den Pfad eines Submoduls angewendet wird, um festzustellen, ob das Submodul für Git-Befehle von Interesse ist. Siehe gitsubmodules[7] für Details.
- submodule.recurse
-
Ein boolescher Wert, der angibt, ob Befehle die Option
--recurse-submodulesstandardmäßig aktivieren sollen. Standardmäßig false.Wenn auf true gesetzt, kann es durch die Option
--no-recurse-submodulesdeaktiviert werden. Beachten Sie, dass einige Git-Befehle, denen diese Option fehlt, einige der oben genannten Befehle aufrufen, die vonsubmodule.recursebetroffen sind; z. B. ruftgitremoteupdategitfetchauf, hat aber keine Option--no-recurse-submodules. Für diese Befehle ist ein Workaround, den Konfigurationswert vorübergehend zu ändern, indemgit-csubmodule.recurse=0verwendet wird.Die folgende Liste zeigt die Befehle, die
--recurse-submodulesakzeptieren und ob sie von dieser Einstellung unterstützt werden.-
checkout,fetch,grep,pull,push,read-tree,reset,restoreundswitchwerden immer unterstützt. -
cloneundls-fileswerden nicht unterstützt. -
branchwird nur unterstützt, wennsubmodule.propagateBranchesaktiviert ist.
-
- submodule.propagateBranches
-
[EXPERIMENTELL] Ein boolescher Wert, der die Verzweigungsunterstützung aktiviert, wenn
--recurse-submodulesodersubmodule.recurse=trueverwendet wird. Wenn dies aktiviert ist, können bestimmte Befehle--recurse-submodulesakzeptieren, und bestimmte Befehle, die--recurse-submodulesbereits akzeptieren, berücksichtigen nun Verzweigungen. Standardmäßig false. - submodule.fetchJobs
-
Gibt an, wie viele Submodule gleichzeitig abgerufen/geklont werden. Eine positive Ganzzahl erlaubt bis zu dieser Anzahl von Submodulen, die parallel abgerufen werden. Ein Wert von 0 gibt einen vernünftigen Standardwert. Wenn nicht gesetzt, ist der Standardwert 1.
- submodule.alternateLocation
-
Gibt an, wie Submodule Alternativen abrufen, wenn Submodule geklont werden. Mögliche Werte sind
no,superproject. Standardmäßig wirdnoangenommen, was keine Referenzen hinzufügt. Wenn der Wert aufsuperprojectgesetzt ist, berechnet das zu klonende Submodul seinen Alternativstandort relativ zum Alternativstandort des Superprojekts. - submodule.alternateErrorStrategy
-
Gibt an, wie Fehler bei den Alternativen für ein Submodul, wie sie über
submodule.alternateLocationberechnet werden, behandelt werden. Mögliche Werte sindignore,info,die. Standard istdie. Beachten Sie, dass, wenn aufignoreoderinfogesetzt und es einen Fehler bei der berechneten Alternative gibt, der Klon fortgesetzt wird, als ob keine Alternative angegeben worden wäre. tag.forceSignAnnotated-
Ein boolescher Wert, der angibt, ob erstellte annotierte Tags GPG-signiert werden sollen. Wenn
--annotateauf der Kommandozeile angegeben wird, hat dies Vorrang vor dieser Option. tag.sort-
Diese Variable steuert die Sortierreihenfolge von Tags, wenn sie von git-tag[1] angezeigt werden. Wenn die Option
--sort=<value>nicht angegeben ist, wird der Wert dieser Variable als Standard verwendet. tag.gpgSign-
Ein boolescher Wert, der angibt, ob alle Tags GPG-signiert werden sollen. Die Verwendung dieser Option in einem automatisierten Skript kann dazu führen, dass eine große Anzahl von Tags signiert wird. Daher ist es praktisch, einen Agenten zu verwenden, um zu vermeiden, dass Ihre GPG-Passphrase mehrmals eingegeben werden muss. Beachten Sie, dass diese Option das Tag-Signierungsverhalten, das durch die Optionen
-u<keyid> oder--local-user=<keyid>aktiviert wird, nicht beeinflusst. - tar.umask
-
Diese Variable kann verwendet werden, um die Berechtigungsbits von Tar-Archiv-Einträgen einzuschränken. Der Standardwert ist 0002, was das Schreibrecht für alle entfernt. Der Sonderwert "user" gibt an, dass stattdessen die umask des Archivierungbenutzers verwendet wird. Siehe umask(2) und git-archive[1].
Trace2-Konfigurationseinstellungen werden nur aus den System- und globalen Konfigurationsdateien gelesen; Repository-lokale und Worktree-Konfigurationsdateien sowie -c-Argumente auf der Kommandozeile werden nicht berücksichtigt.
- trace2.normalTarget
-
Diese Variable steuert das normale Ziel. Sie kann durch die Umgebungsvariable
GIT_TRACE2überschrieben werden. Die folgende Tabelle zeigt mögliche Werte. - trace2.perfTarget
-
Diese Variable steuert das Leistungsziel. Sie kann durch die Umgebungsvariable
GIT_TRACE2_PERFüberschrieben werden. Die folgende Tabelle zeigt mögliche Werte. - trace2.eventTarget
-
Diese Variable steuert das Ereignisziel. Sie kann durch die Umgebungsvariable
GIT_TRACE2_EVENTüberschrieben werden. Die folgende Tabelle zeigt mögliche Werte.-
0oderfalse- Deaktiviert das Ziel. -
1odertrue- Schreibt aufSTDERR. -
[
2-9] - Schreibt auf den bereits geöffneten Dateideskriptor. -
<absolute-pathname> - Schreibt im Anfügemodus in die Datei. Wenn das Ziel bereits existiert und ein Verzeichnis ist, werden die Spuren in Dateien (eine pro Prozess) unterhalb des angegebenen Verzeichnisses geschrieben.
-
af_unix:[<socket-type>:]<absolute-pathname> - Schreibt auf eine Unix Domain Socket (auf Plattformen, die sie unterstützen). Der Socket-Typ kann entwederstreamoderdgramsein; wenn weggelassen, versucht Git beides.
-
- trace2.normalBrief
-
Boolesch. Wenn true, werden die Felder
time,filenameundlineaus der normalen Ausgabe weggelassen. Kann durch die UmgebungsvariableGIT_TRACE2_BRIEFüberschrieben werden. Standardmäßig false. - trace2.perfBrief
-
Boolesch. Wenn true, werden die Felder
time,filenameundlineaus der PERF-Ausgabe weggelassen. Kann durch die UmgebungsvariableGIT_TRACE2_PERF_BRIEFüberschrieben werden. Standardmäßig false. - trace2.eventBrief
-
Boolesch. Wenn true, werden die Felder
time,filenameundlineaus der Ereignisausgabe weggelassen. Kann durch die UmgebungsvariableGIT_TRACE2_EVENT_BRIEFüberschrieben werden. Standardmäßig false. - trace2.eventNesting
-
Ganzzahl. Gibt die gewünschte Tiefe von verschachtelten Regionen in der Ereignisausgabe an. Regionen, die tiefer als dieser Wert sind, werden weggelassen. Kann durch die Umgebungsvariable
GIT_TRACE2_EVENT_NESTINGüberschrieben werden. Standardmäßig 2. - trace2.configParams
-
Eine kommagetrennte Liste von Mustern für "wichtige" Konfigurationseinstellungen, die in der Trace2-Ausgabe aufgezeichnet werden sollen. Zum Beispiel würden
core.*,remote.*.urldazu führen, dass die Trace2-Ausgabe Ereignisse mit allen konfigurierten Remotes enthält. Kann durch die UmgebungsvariableGIT_TRACE2_CONFIG_PARAMSüberschrieben werden. Standardmäßig nicht gesetzt. - trace2.envVars
-
Eine kommagetrennte Liste von "wichtigen" Umgebungsvariablen, die in der Trace2-Ausgabe aufgezeichnet werden sollen. Zum Beispiel würden
GIT_HTTP_USER_AGENT,GIT_CONFIGdazu führen, dass die Trace2-Ausgabe Ereignisse enthält, die die Überschreibungen für den HTTP-User-Agenten und den Speicherort der Git-Konfigurationsdatei auflisten (vorausgesetzt, sie sind gesetzt). Kann durch die UmgebungsvariableGIT_TRACE2_ENV_VARSüberschrieben werden. Standardmäßig nicht gesetzt. - trace2.destinationDebug
-
Boolesch. Wenn true, gibt Git Fehlermeldungen aus, wenn ein Ziel für die Trace-Ausgabe nicht zum Schreiben geöffnet werden kann. Standardmäßig werden diese Fehler unterdrückt und das Tracing wird stillschweigend deaktiviert. Kann durch die Umgebungsvariable
GIT_TRACE2_DST_DEBUGüberschrieben werden. - trace2.maxFiles
-
Ganzzahl. Wenn Tracdateien in ein Zielverzeichnis geschrieben werden, werden keine weiteren Traces geschrieben, wenn dies die angegebene Anzahl überschreitet. Stattdessen wird eine Sentinel-Datei geschrieben, die weitere Trace-Ausgaben in dieses Verzeichnis blockiert. Standardmäßig 0, was diese Prüfung deaktiviert.
- trailer.separators
-
Diese Option gibt an, welche Zeichen als Trennzeichen für Trailer erkannt werden. Standardmäßig wird nur *:* als Trennzeichen für Trailer erkannt, außer dass *= immer auf der Kommandozeile zur Kompatibilität mit anderen Git-Befehlen akzeptiert wird.
Das erste von dieser Option angegebene Zeichen ist das Standardzeichen, das verwendet wird, wenn kein anderes Trennzeichen in der Konfiguration für diesen Trailer angegeben ist.
Wenn beispielsweise der Wert für diese Option "%=$" ist, werden nur Zeilen im Format <key><sep><value> mit <sep>, das %, = oder $ und dann Leerzeichen enthält, als Trailer betrachtet. Und % ist das Standardtrennzeichen, das verwendet wird, sodass Trailer standardmäßig wie folgt aussehen: <key>% <value> (ein Prozentzeichen und ein Leerzeichen erscheinen zwischen Schlüssel und Wert).
- trailer.where
-
Diese Option gibt an, wo ein neuer Trailer hinzugefügt wird.
Dies kann
end(Standard),start,afteroderbeforesein.Wenn es
endist, erscheint jeder neue Trailer am Ende der vorhandenen Trailer.Wenn es
startist, erscheint jeder neue Trailer am Anfang, anstatt am Ende, der vorhandenen Trailer.Wenn es
afterist, erscheint jeder neue Trailer direkt nach dem letzten Trailer mit demselben <key>.Wenn es
beforeist, erscheint jeder neue Trailer direkt vor dem ersten Trailer mit demselben <key>. - trailer.ifexists
-
Diese Option ermöglicht die Wahl der Aktion, die ausgeführt wird, wenn bereits mindestens ein Trailer mit demselben <key> in der Eingabe vorhanden ist.
Die gültigen Werte für diese Option sind:
addIfDifferentNeighbor(dies ist der Standard),addIfDifferent,add,replaceoderdoNothing.Mit
addIfDifferentNeighborwird ein neuer Trailer nur hinzugefügt, wenn kein Trailer mit demselben (<key>, <value>) Paar oberhalb oder unterhalb der Zeile vorhanden ist, in der der neue Trailer hinzugefügt wird.Mit
addIfDifferentwird ein neuer Trailer nur hinzugefügt, wenn kein Trailer mit demselben (<key>, <value>) Paar bereits in der Eingabe vorhanden ist.Mit
addwird ein neuer Trailer hinzugefügt, auch wenn bereits einige Trailer mit demselben (<key>, <value>) Paar in der Eingabe vorhanden sind.Mit
replacewird ein vorhandener Trailer mit demselben <key> gelöscht und der neue Trailer hinzugefügt. Der gelöschte Trailer ist derjenige, der dem Ort am nächsten liegt (mit demselben <key>), an dem der neue hinzugefügt wird.Mit
doNothingwird nichts unternommen; das heißt, es wird kein neuer Trailer hinzugefügt, wenn bereits einer mit demselben <key> in der Eingabe vorhanden ist. - trailer.ifmissing
-
Diese Option ermöglicht die Wahl der Aktion, die ausgeführt wird, wenn noch kein Trailer mit demselben <key> in der Eingabe vorhanden ist.
Die gültigen Werte für diese Option sind:
add(dies ist der Standard) unddoNothing.Mit
addwird ein neuer Trailer hinzugefügt.Mit
doNothingwird nichts unternommen. - trailer.<keyAlias>.key
-
Definiert einen <keyAlias> für den <key>. Der <keyAlias> muss ein Präfix (Groß-/Kleinschreibung wird nicht beachtet) des <key> sein. Zum Beispiel ist in
gitconfigtrailer.ack.key"Acked-by""Acked-by" der <key> und "ack" ist der <keyAlias>. Diese Konfiguration ermöglicht die kürzere Einleitung von--trailer"ack:..."auf der Kommandozeile unter Verwendung des "ack" <keyAlias> anstelle der längeren Einleitung von--trailer"Acked-by:...".Am Ende des <key> kann ein Trennzeichen erscheinen, gefolgt von einigen Leerzeichen. Standardmäßig ist der einzige gültige Trennzeichen-Charakter *:*, aber dies kann mit der Konfigurationsvariable
trailer.separatorsgeändert werden.Wenn sich ein Trennzeichen im Schlüssel befindet, überschreibt dies das Standardtrennzeichen beim Hinzufügen des Trailers.
- trailer.<keyAlias>.where
-
Diese Option nimmt dieselben Werte wie die Konfigurationsvariable trailer.where an und überschreibt das von dieser Option für Trailer mit dem angegebenen <keyAlias> spezifizierte.
- trailer.<keyAlias>.ifexists
-
Diese Option nimmt dieselben Werte wie die Konfigurationsvariable trailer.ifexists an und überschreibt das von dieser Option für Trailer mit dem angegebenen <keyAlias> spezifizierte.
- trailer.<keyAlias>.ifmissing
-
Diese Option nimmt dieselben Werte wie die Konfigurationsvariable trailer.ifmissing an und überschreibt das von dieser Option für Trailer mit dem angegebenen <keyAlias> spezifizierte.
- trailer.<keyAlias>.command
-
Veraltet zugunsten von trailer.<keyAlias>.cmd. Diese Option verhält sich genauso wie trailer.<keyAlias>.cmd, außer dass sie nichts als Argument an den angegebenen Befehl übergibt. Stattdessen wird die erste Vorkommnis des Unterstrings $ARG durch den Wert ersetzt, der als Argument übergeben würde.
Beachten Sie, dass $ARG im Befehl des Benutzers nur einmal ersetzt wird und dass die ursprüngliche Art der Ersetzung von $ARG nicht sicher ist.
Wenn sowohl trailer.<keyAlias>.cmd als auch trailer.<keyAlias>.command für denselben <keyAlias> angegeben sind, wird trailer.<keyAlias>.cmd verwendet und trailer.<keyAlias>.command ignoriert.
- trailer.<keyAlias>.cmd
-
Diese Option kann verwendet werden, um einen Shell-Befehl anzugeben, der einmal aufgerufen wird, um automatisch einen Trailer mit dem angegebenen <keyAlias> hinzuzufügen, und dann jedes Mal aufgerufen wird, wenn ein --trailer <keyAlias>=<value>-Argument angegeben wird, um den <value> des Trailers zu ändern, den diese Option erzeugen würde.
Wenn der angegebene Befehl zum ersten Mal aufgerufen wird, um einen Trailer mit dem angegebenen <keyAlias> hinzuzufügen, verhält es sich so, als ob ein spezielles --trailer <keyAlias>=<value>-Argument am Anfang des Befehls "git interpret-trailers" hinzugefügt wurde, wobei <value> die Standardausgabe des Befehls mit entfernten führenden und abschließenden Leerzeichen ist.
Wenn auch --trailer <keyAlias>=<value>-Argumente auf der Befehlszeile übergeben werden, wird der Befehl für jedes dieser Argumente mit demselben <keyAlias> einmal wieder aufgerufen. Und der <value>-Teil dieser Argumente, falls vorhanden, wird dem Befehl als erstes Argument übergeben. Auf diese Weise kann der Befehl einen <value> erzeugen, der aus dem <value> berechnet wird, das im --trailer <keyAlias>=<value>-Argument übergeben wurde.
- transfer.credentialsInUrl
-
Eine konfigurierte URL kann Klartext-Anmeldeinformationen im Format <protocol>
://<user>:<password>@<domain>/<path> enthalten. Möglicherweise möchten Sie die Verwendung einer solchen Konfiguration warnen oder verbieten (zugunsten der Verwendung von git-credential[1]). Dies wird bei git-clone[1], git-fetch[1], git-push[1] und jeder anderen direkten Verwendung der konfigurierten URL verwendet.Beachten Sie, dass dies derzeit auf die Erkennung von Anmeldeinformationen in der Konfiguration
remote.<name>.urlbeschränkt ist; es erkennt keine Anmeldeinformationen in der Konfigurationremote.<name>.pushurl.Sie möchten dies möglicherweise aktivieren, um eine versehentliche Offenlegung von Anmeldeinformationen zu verhindern, z. B. weil
-
Das Betriebssystem oder das System, auf dem Sie Git ausführen, bietet möglicherweise keine Möglichkeit oder erlaubt Ihnen nicht, die Berechtigungen der Konfigurationsdatei festzulegen, in der der Benutzername und/oder das Passwort gespeichert sind.
-
Selbst wenn dies der Fall ist, könnten solche Daten "im Ruhezustand" gespeichert sein und Sie auf andere Weise exponieren, z. B. ein Sicherungsprozess könnte die Daten auf ein anderes System kopieren.
-
Die Git-Programme übergeben die vollständige URL auf der Befehlszeile aneinander, was bedeutet, dass die Anmeldeinformationen für andere nicht privilegierte Benutzer auf Systemen, die es ihnen erlauben, die vollständige Prozessliste anderer Benutzer zu sehen, offengelegt werden. Unter Linux ermöglicht die Einstellung "hidepid", die in procfs(5) dokumentiert ist, die Konfiguration dieses Verhaltens.
Wenn Sie solche Bedenken nicht haben, müssen Sie sich wahrscheinlich keine Gedanken über die Offenlegung von Anmeldeinformationen aufgrund der Speicherung sensibler Daten in Git-Konfigurationsdateien machen. Wenn Sie dies verwenden möchten, setzen Sie
transfer.credentialsInUrlauf einen der folgenden Werte -
allow(Standard): Git fährt mit seiner Aktivität fort, ohne zu warnen. -
warn: Git schreibt eine Warnmeldung nachstderr, wenn eine URL mit Anmeldeinformationen im Klartext geparst wird. -
die: Git schreibt eine Fehlermeldung nachstderr, wenn eine URL mit Anmeldeinformationen im Klartext geparst wird.
-
- transfer.fsckObjects
-
Wenn
fetch.fsckObjectsoderreceive.fsckObjectsnicht gesetzt sind, wird stattdessen der Wert dieser Variablen verwendet. Standardmäßig false.Wenn gesetzt, werden der Fetch- oder Receive-Vorgang bei einem fehlerhaften Objekt oder einem Link zu einem nicht vorhandenen Objekt abgebrochen. Darüber hinaus werden verschiedene andere Probleme überprüft, einschließlich Legacy-Probleme (siehe
fsck.<msg-id>) und potenzielle Sicherheitsprobleme wie die Existenz eines.GIT-Verzeichnisses oder einer bösartigen.gitmodules-Datei (siehe die Release Notes für v2.2.1 und v2.17.1 für Details). Andere Integritäts- und Sicherheitsprüfungen können in zukünftigen Versionen hinzugefügt werden.Auf der Empfangsseite machen fehlgeschlagene fsckObjects diese Objekte unerreichbar, siehe "QUARANTINE ENVIRONMENT" in git-receive-pack[1]. Auf der Fetch-Seite werden fehlerhafte Objekte stattdessen als nicht referenziert im Repository belassen.
Aufgrund der nicht-Quarantäne-Natur der
fetch.fsckObjects-Implementierung kann diese nicht dazu verwendet werden, den Objekt-Store sauber zu hinterlassen, wie esreceive.fsckObjectskann.Beim Entpacken von Objekten werden diese in den Objekt-Store geschrieben, so dass es Fälle geben kann, in denen bösartige Objekte eingeführt werden, obwohl der "fetch" fehlgeschlagen ist, und ein nachfolgender "fetch" erfolgreich ist, da nur neue eingehende Objekte überprüft werden, nicht die, die bereits in den Objekt-Store geschrieben wurden. Auf diesen Verhaltensunterschied sollte man sich nicht verlassen. In Zukunft können solche Objekte auch für "fetch" unter Quarantäne gestellt werden.
Für den Moment müssen die Paranoiden einen Weg finden, die Quarantäneumgebung zu emulieren, wenn sie denselben Schutz wie bei "push" wünschen. Z. B. im Falle eines internen Spiegels, führen Sie das Spiegeln in zwei Schritten durch, einen zum Abrufen der nicht vertrauenswürdigen Objekte, und dann einen zweiten "push" (der die Quarantäne verwendet) in ein anderes internes Repository, und lassen Sie interne Clients dieses Repository konsumieren, oder embargo Sie interne Fetches und erlauben Sie sie erst, nachdem ein vollständiger "fsck" gelaufen ist (und in der Zwischenzeit keine neuen Fetches stattgefunden haben).
- transfer.hideRefs
-
Zeichenkette(n), die
receive-packundupload-packverwenden, um zu entscheiden, welche Refs aus ihren anfänglichen Anzeigen weggelassen werden sollen. Verwenden Sie mehr als eine Definition, um mehrere Präfixzeichenfolgen anzugeben. Ein Ref, das sich unter den Hierarchien befindet, die im Wert dieser Variablen aufgeführt sind, wird ausgeschlossen und wird beim Antworten aufgitpushodergitfetchverborgen. Siehereceive.hideRefsunduploadpack.hideRefsfür programmspezifische Versionen dieser Konfiguration.Sie können auch ein
!vor dem Ref-Namen einfügen, um den Eintrag zu negieren und ihn explizit offenzulegen, auch wenn ein früherer Eintrag ihn als verborgen markiert hat. Wenn Sie mehrere hideRefs-Werte haben, überschreiben spätere Einträge frühere Einträge (und Einträge in spezifischeren Konfigurationsdateien überschreiben weniger spezifische).Wenn ein Namespace verwendet wird, wird das Namespace-Präfix von jedem Referenz entfernt, bevor es mit den
transfer.hiderefs-Mustern abgeglichen wird. Um Refs vor dem Entfernen abzugleichen, fügen Sie ein^vor dem Ref-Namen hinzu. Wenn Sie!und^kombinieren, muss!zuerst angegeben werden.Zum Beispiel, wenn
refs/heads/masterintransfer.hideRefsangegeben ist und der aktuelle Namespacefooist, dann wirdrefs/namespaces/foo/refs/heads/masteraus den Anzeigen weggelassen. Wennuploadpack.allowRefInWantgesetzt ist, behandeltupload-packwant-refrefs/heads/masterin einem Protokoll v2fetch-Befehl so, als obrefs/namespaces/foo/refs/heads/masternicht existieren würde.receive-packhingegen wird immer noch die Objekt-ID der Referenz, auf die sie zeigt, ohne Nennung ihres Namens (eine sogenannte ".have"-Zeile) anzeigen.Auch wenn Sie Refs verbergen, kann ein Client die Zielobjekte immer noch über die im Abschnitt "SECURITY" von gitnamespaces[7] beschriebenen Techniken stehlen. Es ist am besten, private Daten in einem separaten Repository aufzubewahren.
- transfer.unpackLimit
-
Wenn
fetch.unpackLimitoderreceive.unpackLimitnicht gesetzt sind, wird stattdessen der Wert dieser Variablen verwendet. Der Standardwert ist 100. - transfer.advertiseSID
-
Boolean. Wenn true, werben Client- und Serverprozesse ihre eindeutigen Sitzungs-IDs bei ihrem Remote-Gegenstück an. Standardmäßig false.
- transfer.bundleURI
-
Wenn
true, fordern lokalegitclone-Befehle Bundle-Informationen vom Remote-Server an (falls beworben) und laden Bundles herunter, bevor der Klonvorgang über das Git-Protokoll fortgesetzt wird. Standardmäßigfalse. - transfer.advertiseObjectInfo
-
Wenn
true, wird die Fähigkeitobject-infovon Servern beworben. Standardmäßig false. - uploadarchive.allowUnreachable
-
Wenn true, erlaubt Clients die Verwendung von
gitarchive--remote, um jeden Baum anzufordern, unabhängig davon, ob er von den Ref-Tipps erreichbar ist oder nicht. Siehe die Diskussion im Abschnitt "SECURITY" von git-upload-archive[1] für weitere Details. Standardmäßigfalse. - uploadpack.hideRefs
-
Diese Variable ist identisch mit
transfer.hideRefs, gilt aber nur fürupload-pack(und beeinflusst daher nur Fetches, keine Pushes). Ein Versuch, einen versteckten Ref übergitfetchabzurufen, schlägt fehl. Siehe auchuploadpack.allowTipSHA1InWant. - uploadpack.allowTipSHA1InWant
-
Wenn
uploadpack.hideRefsaktiv ist, erlaubtupload-packdie Annahme einer Fetch-Anforderung, die nach einem Objekt an der Spitze eines versteckten Refs fragt (standardmäßig wird eine solche Anforderung abgelehnt). Siehe auchuploadpack.hideRefs. Selbst wenn dies false ist, kann ein Client Objekte über die im Abschnitt "SECURITY" von gitnamespaces[7] beschriebenen Techniken stehlen. Es ist am besten, private Daten in einem separaten Repository aufzubewahren. - uploadpack.allowReachableSHA1InWant
-
Erlaubt
upload-pack, eine Fetch-Anforderung anzunehmen, die nach einem Objekt fragt, das von einem beliebigen Ref-Tip erreichbar ist. Beachten Sie jedoch, dass die Berechnung der Objekt-Erreichbarkeit rechenintensiv ist. Standardmäßigfalse. Selbst wenn dies false ist, kann ein Client Objekte über die im Abschnitt "SECURITY" von gitnamespaces[7] beschriebenen Techniken stehlen. Es ist am besten, private Daten in einem separaten Repository aufzubewahren. - uploadpack.allowAnySHA1InWant
-
Erlaubt
upload-pack, eine Fetch-Anforderung anzunehmen, die nach einem beliebigen Objekt fragt. Dies impliziertuploadpack.allowTipSHA1InWantunduploadpack.allowReachableSHA1InWant. Wenn auftruegesetzt, werden beide aktiviert, wenn auffalsegesetzt, werden beide deaktiviert. Standardmäßig nicht gesetzt. - uploadpack.keepAlive
-
Wenn
upload-packpack-objectsgestartet hat, kann es eine Ruhephase geben, währendpack-objectsdas Paket vorbereitet. Normalerweise würde es Fortschrittsinformationen ausgeben, aber wenn--quietfür den Fetch verwendet wurde, gibtpack-objectsnichts aus, bis die Paketdaten beginnen. Einige Clients und Netzwerke könnten den Server als hängend betrachten und aufgeben. Das Setzen dieser Option weistupload-packan, alleuploadpack.keepAliveSekunden ein leeres Keepalive-Paket zu senden. Das Setzen dieser Option auf 0 deaktiviert Keepalive-Pakete vollständig. Der Standardwert ist 5 Sekunden. - uploadpack.packObjectsHook
-
Wenn diese Option gesetzt ist, wenn
upload-packgitpack-objectsausführt, um ein Packfile für einen Client zu erstellen, führt es stattdessen diesen Shell-Befehl aus. Derpack-objects-Befehl und die Argumente, die es ausführen würde (einschließlich desgitpack-objectsam Anfang), werden an den Shell-Befehl angehängt. Die Standardeingabe und -ausgabe des Hooks werden so behandelt, als obpack-objectsselbst ausgeführt wurde. D. h.,upload-packübergibt die fürpack-objectsbestimmten Eingaben an den Hook und erwartet ein abgeschlossenes Packfile auf der Standardausgabe.Beachten Sie, dass diese Konfigurationsvariable nur berücksichtigt wird, wenn sie in einer geschützten Konfiguration angegeben ist (siehe SCOPES). Dies ist eine Sicherheitsmaßnahme gegen das Abrufen aus nicht vertrauenswürdigen Repositories.
- uploadpack.allowFilter
-
Wenn diese Option gesetzt ist, unterstützt
upload-packdas partielle Klonen und partielle Abrufen von Objektfiltern. - uploadpackfilter.allow
-
Bietet einen Standardwert für nicht spezifizierte Objektfilter (siehe: die untenstehende Konfigurationsvariable). Wenn auf
truegesetzt, werden dadurch auch alle Filter aktiviert, die in Zukunft hinzugefügt werden. Standardmäßigtrue. - uploadpackfilter.<filter>.allow
-
Erlaubt oder verbietet explizit den Objektfilter, der <filter> entspricht, wobei <filter> einer der folgenden sein kann:
blob:none,blob:limit,object:type,tree,sparse:oidodercombine. Bei Verwendung von kombinierten Filtern müssen sowohlcombineals auch alle verschachtelten Filterarten erlaubt sein. Standardmäßiguploadpackfilter.allow. - uploadpackfilter.tree.maxDepth
-
Erlaubt
--filter=tree:<n> nur, wenn <n> nicht größer ist als der Wert vonuploadpackfilter.tree.maxDepth. Wenn gesetzt, impliziert dies auchuploadpackfilter.tree.allow=true, es sei denn, diese Konfigurationsvariable wurde bereits gesetzt. Hat keine Auswirkung, wenn nicht gesetzt. - uploadpack.allowRefInWant
-
Wenn diese Option gesetzt ist, unterstützt
upload-packdasref-in-want-Feature des Protokollversion 2fetch-Befehls. Dieses Feature ist für die Vorteile von Lastverteilungs-Servern gedacht, die möglicherweise nicht dieselbe Sicht darauf haben, welche OIDs ihre Refs aufgrund von Replikationsverzögerungen zeigen. - url.<base>.insteadOf
-
Jede URL, die mit diesem Wert beginnt, wird umgeschrieben, um stattdessen mit <base> zu beginnen. In Fällen, in denen eine Website eine große Anzahl von Repositories hostet und diese mit mehreren Zugriffsmethoden hostet, und einige Benutzer unterschiedliche Zugriffsmethoden verwenden müssen, ermöglicht diese Funktion den Personen, jede der äquivalenten URLs anzugeben, und Git schreibt die URL automatisch für den jeweiligen Benutzer in die beste Alternative um, selbst für ein noch nie zuvor gesehene Repository auf der Website. Wenn mehr als eine insteadOf-Zeichenkette mit einer gegebenen URL übereinstimmt, wird die längste Übereinstimmung verwendet.
Beachten Sie, dass alle Protokollbeschränkungen auf die umgeschriebene URL angewendet werden. Wenn die Umschreibung die URL zur Verwendung eines benutzerdefinierten Protokolls oder Remote-Helpers ändert, müssen Sie möglicherweise die Konfiguration
protocol.*.allowanpassen, um die Anforderung zuzulassen. Insbesondere Protokolle, die Sie für Submodule verwenden möchten, müssen aufalwaysund nicht auf den Standardwertusergesetzt werden. Siehe die Beschreibung vonprotocol.allowoben. - url.<base>.pushInsteadOf
-
Jede URL, die mit diesem Wert beginnt, wird nicht gepusht; stattdessen wird sie umgeschrieben, um mit <base> zu beginnen, und die resultierende URL wird gepusht. In Fällen, in denen eine Website eine große Anzahl von Repositories hostet und diese mit mehreren Zugriffsmethoden hostet, von denen einige kein Push erlauben, ermöglicht diese Funktion den Personen, eine nur-Pull-URL anzugeben, und Git verwendet automatisch eine geeignete URL zum Pushen, selbst für ein noch nie zuvor gesehene Repository auf der Website. Wenn mehr als eine pushInsteadOf-Zeichenkette mit einer gegebenen URL übereinstimmt, wird die längste Übereinstimmung verwendet. Wenn ein Remote eine explizite pushurl hat, ignoriert Git diese Einstellung für dieses Remote.
- user.name
- user.email
- author.name
- author.email
- committer.name
- committer.email
-
Die Variablen
user.nameunduser.emailbestimmen, was in den Feldernauthorundcommittervon Commit-Objekten landet. Wenn Sie möchten, dass derauthorodercommitterunterschiedlich ist, können die Variablenauthor.name,author.email,committer.nameodercommitter.emailgesetzt werden. All diese können durch die UmgebungsvariablenGIT_AUTHOR_NAME,GIT_AUTHOR_EMAIL,GIT_COMMITTER_NAME,GIT_COMMITTER_EMAILundEMAILüberschrieben werden.Beachten Sie, dass sich die
name-Formen dieser Variablen konventionell auf eine Art von persönlichem Namen beziehen. Siehe git-commit[1] und den Abschnitt über Umgebungsvariablen von git[1] für weitere Informationen zu diesen Einstellungen und der Optioncredential.username, wenn Sie stattdessen nach Authentifizierungsanmeldeinformationen suchen. - user.useConfigOnly
-
Weist Git an, zu vermeiden, Standardwerte für
user.emailunduser.namezu erraten, und stattdessen die Werte nur aus der Konfiguration abzurufen. Wenn Sie beispielsweise mehrere E-Mail-Adressen haben und für jedes Repository eine andere verwenden möchten, werden Sie mit dieser Konfigurationsoption, die in der globalen Konfiguration auftruegesetzt ist, zusammen mit einem Namen aufgefordert, eine E-Mail einzurichten, bevor Sie neue Commits in einem neu geklonten Repository vornehmen. Standardmäßigfalse. - user.signingKey
-
Wenn git-tag[1] oder git-commit[1] nicht den gewünschten Schlüssel automatisch auswählt, wenn ein signierter Tag oder Commit erstellt wird, können Sie die Standardauswahl mit dieser Variablen überschreiben. Diese Option wird unverändert an GPGs --local-user-Parameter übergeben, sodass Sie einen Schlüssel mit jeder Methode angeben können, die GPG unterstützt. Wenn gpg.format auf
sshgesetzt ist, kann dies den Pfad zu Ihrem privaten SSH-Schlüssel oder dem öffentlichen Schlüssel enthalten, wenn ssh-agent verwendet wird. Alternativ kann es direkt einen öffentlichen Schlüssel enthalten, der mitkey::präfixiert ist (z. B.: "key::ssh-rsa XXXXXX identifier"). Der private Schlüssel muss über ssh-agent verfügbar sein. Wenn nicht gesetzt, ruft Git gpg.ssh.defaultKeyCommand auf (z. B.: "ssh-add -L") und versucht, den ersten verfügbaren Schlüssel zu verwenden. Für die Abwärtskompatibilität wird ein roher Schlüssel, der mit "ssh-" beginnt, wie z. B. "ssh-rsa XXXXXX identifier", als "key::ssh-rsa XXXXXX identifier" behandelt, aber diese Form ist veraltet; verwenden Sie stattdessen die Formkey::. - versionsort.prereleaseSuffix (deprecated)
-
Veraltetes Alias für
versionsort.suffix. Wird ignoriert, wennversionsort.suffixgesetzt ist. - versionsort.suffix
-
Auch wenn die VersionSortierung in git-tag[1] verwendet wird, werden Tagnamen mit derselben Basisversion, aber unterschiedlichen Suffixen immer noch lexikografisch sortiert, was z. B. dazu führt, dass Pre-Release-Tags nach der Hauptveröffentlichung erscheinen (z. B. "1.0-rc1" nach "1.0"). Diese Variable kann angegeben werden, um die Sortierreihenfolge von Tags mit unterschiedlichen Suffixen zu bestimmen.
Durch Angabe eines einzelnen Suffixes in dieser Variablen erscheinen Tagnamen, die dieses Suffix enthalten, vor der entsprechenden Hauptversion. Z. B. wenn die Variable auf "-rc" gesetzt ist, erscheinen alle "1.0-rcX"-Tags vor "1.0". Wenn sie mehrmals, einmal pro Suffix, angegeben wird, bestimmt die Reihenfolge der Suffixe in der Konfiguration die Sortierreihenfolge von Tagnamen mit diesen Suffixen. Z. B. wenn "-pre" vor "-rc" in der Konfiguration erscheint, werden alle "1.0-preX"-Tags vor allen "1.0-rcX"-Tags aufgeführt. Die Platzierung des Hauptversions-Tags relativ zu Tags mit verschiedenen Suffixen kann durch Angabe des leeren Suffixes unter diesen anderen Suffixen bestimmt werden. Z. B. wenn die Suffixe "-rc", "", "-ck" und "-bfs" in dieser Reihenfolge in der Konfiguration erscheinen, werden zuerst alle "v4.8-rcX"-Tags aufgeführt, gefolgt von "v4.8", dann "v4.8-ckX" und schließlich "v4.8-bfsX".
Wenn mehr als ein Suffix mit demselben Tagnamen übereinstimmt, wird dieser Tagname gemäß dem Suffix sortiert, das an der frühesten Position im Tagnamen beginnt. Wenn mehr als ein unterschiedliches übereinstimmendes Suffix an dieser frühesten Position beginnt, wird dieser Tagname gemäß dem längsten dieser Suffixe sortiert. Die Sortierreihenfolge zwischen verschiedenen Suffixen ist undefiniert, wenn sie sich in mehreren Konfigurationsdateien befinden.
- web.browser
-
Gibt einen Webbrowser an, der von einigen Befehlen verwendet werden kann. Derzeit können nur git-instaweb[1] und git-help[1] ihn verwenden.
worktree.guessRemote-
Wenn kein Branch angegeben ist und weder
-bnoch-Bnoch--detachverwendet wird, erstelltgitworktreeaddstandardmäßig einen neuen Branch aus HEAD. Wennworktree.guessRemoteauf true gesetzt ist, versuchtworktreeadd, einen Remote-Tracking-Branch zu finden, dessen Name eindeutig mit dem neuen Branch-Namen übereinstimmt. Wenn ein solcher Branch existiert, wird er ausgecheckt und als "Upstream" für den neuen Branch gesetzt. Wenn keine solche Übereinstimmung gefunden werden kann, wird standardmäßig ein neuer Branch aus dem aktuellenHEADerstellt. worktree.useRelativePaths-
Verknüpft Worktrees mit relativen Pfaden (wenn "
true") oder absoluten Pfaden (wenn "false"). Dies ist besonders nützlich für Setups, bei denen das Repository und die Worktrees möglicherweise zwischen verschiedenen Orten oder Umgebungen verschoben werden. Standardmäßig "false".Beachten Sie, dass das Setzen von
worktree.useRelativePathsauf "true" die Aktivierung der Konfigurationextensions.relativeWorktrees(siehe git-config[1]) impliziert und es daher inkompatibel mit älteren Git-Versionen macht.
BUGS
Wenn die veraltete Syntax [section.subsection] verwendet wird, führt das Ändern eines Werts dazu, dass ein mehrzeiliger Schlüssel hinzugefügt wird, anstatt einer Änderung, wenn die Unterabschnitt mit mindestens einem Großbuchstaben angegeben wird. Zum Beispiel, wenn die Konfiguration so aussieht
[section.subsection]
key = value1
und das Ausführen von git config section.Subsection.key value2 führt zu
[section.subsection]
key = value1
key = value2
GIT
Teil der git[1] Suite