git config
Informationen zu git config: Konfigurationsebenen, Editor einrichten, Aliase erstellen und Werte lesen oder schreiben.
Was ist git config
Der Befehl git config ist ein Befehlszeilenprogramm zum Lesen und Schreiben von Konfigurationsvariablen in Git – also den Einstellungen, die steuern, wie Git aussieht und sich verhält. Diese Variablen definieren Ihre Identität (Name und E-Mail-Adresse), Ihren bevorzugten Texteditor, Ausgabefarben, Befehls-Abkürzungen (Aliase) und Dutzende weiterer Verhaltensweisen.
Diese Seite behandelt die Konfigurationsebenen und ihre Dateien, das Lesen und Schreiben von Werten, das Einrichten von Editor und Farben, das Erstellen von Aliasen sowie die Anpassung der Leerzeichenbehandlung. Das Setzen von user.name und user.email mit git config ist in der Regel das Erste, was Sie nach der Installation von Git tun.

Die git config-Ebenen und -Dateien
Der Befehl git config akzeptiert Argumente, um festzulegen, auf welcher Konfigurationsebene er arbeiten soll. Bei der Suche nach einem Konfigurationswert priorisiert Git die folgende Reihenfolge (von der niedrigsten zur höchsten Priorität):
--system– Die systemweite Konfiguration gilt für alle Benutzer eines Betriebssystems und alle Repositories. Die systemweite Konfigurationsdatei befindet sich im Git-Installationsverzeichnis.
git config Systemebene
(prefix)/etc/gitconfig - on Unix systems
C:\Documents and Settings\All Users\Application Data\Git\config - Windows XP (deprecated)
C:\ProgramData\Git\config - Windows Vista and newer versions--global– Die globale Konfigurationsebene gilt für den aktuellen Betriebssystembenutzer. Globale Konfigurationswerte werden in einer Datei im Home-Verzeichnis des Benutzers gespeichert.
git config globale Ebene
~/.gitconfig - on Unix systems
C:\Users\<username>\.gitconfig - on Windows--local– Wenn keine Konfigurationsoption angegeben wird, schreibtgit configstandardmäßig auf die lokale Ebene. Das.git-Verzeichnis des Repositories enthält eine Datei, in der lokale Konfigurationswerte gespeichert werden.
git config lokale Ebene
.git/configHinweis: Lokale Einstellungen überschreiben globale Einstellungen, die wiederum systemweite Einstellungen überschreiben. Eine user.email, die innerhalb eines bestimmten Repositories (lokal) gesetzt wird, hat daher Vorrang vor dem globalen Wert, sodass Sie in einem Projekt eine geschäftliche und in einem anderen eine private E-Mail-Adresse verwenden können.
Einen Wert schreiben
Um einen Wert zu schreiben, übergeben Sie den Konfigurationsnamen gefolgt vom Wert. Das folgende Beispiel schreibt [email protected] in user.email. Das Flag --global setzt den Wert für den aktuellen Betriebssystembenutzer, sodass er für jedes Repository gilt, in dem Sie arbeiten:
git config Benutzer setzen
git config --global user.email "[email protected]"Eine typische Ersteinrichtung schreibt sowohl Ihren Namen als auch Ihre E-Mail-Adresse:
git config --global user.name "Jane Doe"
git config --global user.email "[email protected]"Diese beiden Werte werden auf jeden Commit gestempelt, den Sie erstellen, also setzen Sie sie vor Ihrem ersten Commit.
Einen Wert lesen
Die grundlegende Verwendung von git config besteht darin, einen Konfigurationswert durch Angabe seines Namens abzurufen. Konfigurationsnamen bestehen aus einem section- und einem key-Teil, getrennt durch einen Punkt:
git config Benutzer-E-Mail
git config user.emailHier ist email eine untergeordnete Eigenschaft des Abschnitts user. Die Ausführung gibt den aktiven Wert aus – denjenigen, der nach der Überschreibungskette lokal → global → System gewinnt.
Nützliche Inspektionsbefehle
Neben dem Lesen eines einzelnen Schlüssels helfen diese Befehle, alles zu sehen und zu verwalten, was Git konfiguriert hat:
| Befehl | Was er tut |
|---|---|
git config --list | Listet alle aktiven Einstellungen auf, zusammengeführt über alle Ebenen. |
git config --list --show-origin | Listet jede Einstellung zusammen mit der Datei auf, aus der sie stammt. |
git config --get-all <key> | Ruft alle Werte für einen Schlüssel ab, der mehr als einmal gesetzt sein kann. |
git config --unset <key> | Entfernt eine einzelne Einstellung. |
git config --edit | Öffnet die entsprechende Konfigurationsdatei in Ihrem Standard-Editor. |
Wenn zwei Ebenen denselben Schlüssel definieren, ist --show-origin der schnellste Weg, um herauszufinden, welche Datei für den von Git tatsächlich verwendeten Wert verantwortlich ist.
Der git config-Editor - core.editor
Sobald Ihre Identität eingerichtet ist, verwendet Git den Standard-Editor Ihres Systems, also Vi oder Vim. Mit git config wird festgelegt, welchen Editor Git verwenden soll. Hier ist eine Liste der gängigsten Editoren mit den entsprechenden git config-Befehlen:
| Editor | Konfigurationsbefehl |
|---|---|
| Atom | git config --global core.editor "atom --wait" |
| emacs | git config --global core.editor "emacs" |
| nano | git config --global core.editor "nano -w" |
| vim | git config --global core.editor "vim" |
| Sublime Text (Mac) | git config --global core.editor "subl -w" |
| Sublime Text (Win, 32-bit install) | git config --global core.editor "'c:/program files (x86)/sublime text 3/sublimetext.exe' -w" |
| Sublime Text (Win, 64-bit install) | git config --global core.editor "'c:/program files/sublime text 3/sublimetext.exe' -w" |
| Textmate | git config --global core.editor "mate -w" |
Farbige Ausgaben
Git unterstützt Farben, was das Lesen der Git-Ausgabe vereinfacht. Sie können eigene Farben zur Anpassung der Ausgabe verwenden. Zum Setzen von Farbwerten wird der Befehl git config verwendet.
color.ui
Git färbt den Großteil seiner Ausgabe automatisch ein, es gibt aber auch eine übergeordnete Variable, wenn Sie eine andere Farbe festlegen möchten. Um alle farbigen Terminalausgaben von Git zu deaktivieren, können Sie Folgendes tun:
git config color.ui setzen
git config --global color.ui falseDie Standardeinstellung von color.ui ist auto, was Farben direkt auf die Terminalausgabe anwendet. Farbcodes werden weggelassen, wenn die Ausgabe an eine Pipe oder eine Datei weitergeleitet wird.
Sie können den Wert color.ui auch auf always setzen. Dann werden Farbcodes ausgegeben, auch wenn die Ausgabe in Dateien oder Pipes umgeleitet wird. Dies kann zu Problemen führen, da die empfangende Pipe möglicherweise keine farbcodierten Eingaben erwartet.
Git-Farbwerte
Neben color.ui gibt es weitere Farbeinstellungen, die auf false, auto oder always gesetzt werden können. Sie können einen spezifischen Farbwert haben: normal, black, red, green, yellow, blue, magenta, cyan, white. Farben können als hexadezimale Farbcodes wie #1c87c9 oder als ANSI-256-Farbwerte angegeben werden, sofern das Terminal dies unterstützt.
Git-Farbkonfigurationseinstellungen
| Einstellung | Beschreibung |
|---|---|
| color.branch | Legt die Ausgabefarbe des Git-Branch-Befehls fest. |
color.branch.<slot> | Gilt für die Git-Branch-Ausgabe. <slot> ist eines der folgenden: 1. aktueller Branch 2. lokaler Branch 3. Remote-Branch 4. Upstream-Branch 5. plain (jede andere Referenz) |
| color.diff | Gibt Farben für die Ausgabe von git diff, git log und git show aus. |
color.diff.<slot> | Weist Git an, für welchen Teil des Patches (context, plain, meta, frag, old, new, commit, whitespace) eine bestimmte Farbe verwendet werden soll. |
color.decorate.<slot> | Passt die Farbe für die Ausgabe von git log --decorate an. Die unterstützten <slot>-Werte sind branch, remoteBranch, tag, stash oder HEAD. Sie werden auf lokale Branches, Remote-Tracking-Branches, Tags, gespeicherte Änderungen und HEAD angewendet. |
| color.grep | Gibt der Ausgabe von git grep Farbe. |
color.grep.<slot> | Kann auf git grep angewendet werden. Die Variable <slot> gibt an, auf welchen Teil der grep-Ausgabe (context, filename, function, line number, match, matchContext, matchSelected, selected, separator) Farbe angewendet werden soll. |
| color.interactive | Gibt Farbe für interaktive Eingabeaufforderungen und Anzeigen aus (z. B. git add --interactive, git clean --interactive). |
color.interactive.<slot> | Zielt auf eine „interaktive Ausgabe" ab. Die verfügbaren <slot>-Werte sind: prompt, header, help, error. |
| color.pager | Aktiviert oder deaktiviert farbige Ausgabe, wenn der Pager verwendet wird. |
| color.showBranch | Aktiviert oder deaktiviert die farbige Ausgabe für den Befehl git show-branch. |
| color.status | Aktiviert oder deaktiviert farbige Ausgabe für Git-Status. |
color.status.<slot> | Legt eine benutzerdefinierte Farbe für definierte git status-Elemente fest. <slot> unterstützt folgende Werte: header, added oder updated, changed, untracked, branch, nobranch, unmerged. |
Die git config-Aliase
Aliase sind benutzerdefinierte Abkürzungen, die zu längeren oder kombinierten Befehlen erweitert werden, sodass Sie häufig verwendete Befehle nicht vollständig eintippen müssen. Das Alias-System von Git wird am häufigsten verwendet, um gängige Befehle abzukürzen. Aliase werden mit git config erstellt:
git config Alias setzen
git config --global alias.ci commitDanach führt git ci den Befehl git commit aus. Da der Wert ein Leerzeichen enthält, muss ein Alias, der einem Befehl mit Flags entspricht, als einzelnes Argument in Anführungszeichen gesetzt werden:
git config Aliase
git config --global alias.amend "commit --amend"Hier erweitert sich git amend zu git commit --amend. Ein Alias kann auch einen Shell-Befehl aufrufen, indem dem Wert ! vorangestellt wird, zum Beispiel git config --global alias.unstage '!git restore --staged'. Für eine ausführlichere Behandlung siehe das dedizierte Kapitel git alias.
Formatierung & Leerzeichen
| Funktion | Beschreibung | Git Config-Befehl |
|---|---|---|
indent-with-non-tab | Hebt eine Zeile hervor, die mit Leerzeichen statt mit Tabs beginnt. | git config --global core.whitespace "indent-with-non-tab,tab-in-indent,blank-at-eof,-trailing-space,-cr-at-eol" |
tab-in-indent | Hebt einen führenden Tab-Einzug als Fehler hervor. | (Kombiniert mit anderen Regeln) |
blank-at-eof | Hebt Leerzeilen am Ende einer Datei hervor. | (Kombiniert mit anderen Regeln) |
trailing-space | Hebt abschließende Leerzeichen hervor. | (Kombiniert mit anderen Regeln) |
cr-at-eol | Hebt ein Wagenrücklaufzeichen am Zeilenende hervor. | (Kombiniert mit anderen Regeln) |
tabwidth=<n> | Gibt an, wie viele Zeichenpositionen ein Tab einnimmt. Standard ist 8. Erlaubte Werte: 1–63. | git config --global core.whitespace "tabwidth=<n>" |
Weitere häufige Einstellungen
Einige Konfigurationswerte sind es wert, auf einem neuen Rechner gesetzt zu werden:
# Name the default branch "main" for every repository you create
git config --global init.defaultBranch main
# Reuse cached credentials so you are not prompted on every push
git config --global credential.helper cache
# Choose how git pull reconciles divergent branches (merge, not rebase)
git config --global pull.rebase falseDer Wert init.defaultBranch wird von git init angewendet, wenn ein Repository erstellt wird. Um zu steuern, welche Dateien Git überhaupt verfolgt, kombinieren Sie Ihre Konfiguration mit einer .gitignore-Datei.