git config
Beschreibung
Der Befehl git config ist ein Kommandozeilenwerkzeug, das Konfigurationsvariablen setzt. Er steuert das Aussehen und Verhalten von Git.

Die Ebenen und Dateien von git config
Der Befehl git config akzeptiert Argumente, um anzugeben, auf welcher Konfigurationsebene gearbeitet werden soll. Beim Suchen nach einem Konfigurationswert priorisiert Git die folgende Reihenfolge (von der niedrigsten bis zur höchsten Priorität):
--system– Die systemweite Konfiguration umfasst alle Benutzer eines Betriebssystems und alle Repositories. Die systemweite Konfigurationsdatei befindet sich im Git-Installationsverzeichnis.
git config system level
(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 Konfiguration gilt für den aktuellen Benutzer des Betriebssystems. Globale Konfigurationswerte werden in einer Datei im Home-Verzeichnis des Benutzers gespeichert.
git config global level
~/.gitconfig - on Unix systems
C:\Users\<username>\.gitconfig - on Windows--local– Wenn keine Konfigurationsoption übergeben 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 local level
.git/configHinweis: Lokale Einstellungen überschreiben globale Einstellungen, die wiederum Systemeinstellungen überschreiben.
Wie man einen Wert schreibt
Hier schreibt das Beispiel den Wert "[email protected]" in den Konfigurationsnamen user.email. Die globale Ebene wird verwendet, um den Wert für den aktuellen Benutzer des Betriebssystems festzulegen.
git config set user
git config --global user.email "[email protected]"Die Verwendung von git config
Die grundlegende Verwendung von git config besteht darin, einen Konfigurationswert abzurufen, indem man seinen Namen angibt. Konfigurationsnamen bestehen aus einem section und einem key, die durch einen Punkt getrennt sind.
git config user email
git config user.emailHier ist email eine untergeordnete Eigenschaft des Konfigurationsblocks user.
Sie können außerdem alle aktiven Einstellungen mit git config --list auflisten, eine Einstellung mit git config --unset <key> entfernen oder die Konfigurationsdatei mit git config --edit in Ihrem Standardeditor öffnen. Für moderne Workflows zeigt git config --show-origin an, wo jede Einstellung definiert ist, und git config --get-all <key> ruft alle Werte für einen bestimmten Schlüssel ab.
Der git config-Editor - core.editor
Wenn Ihre Identität eingerichtet ist, verwendet Git den Standardeditor Ihres Systems, also Vi oder Vim. git config legt fest, welchen Editor Git verwenden wird. Hier ist die Liste der gängigsten Editoren mit git config-Befehlen:
| Editor | Config Command |
|---|---|
| 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 und vereinfacht dadurch das Lesen der Git-Ausgabe. Sie können Ihre eigenen Farben verwenden, um die Ausgabe anzupassen. Zum Festlegen von Farbwerten wird der Befehl git config verwendet.
color.ui
Git färbt die meisten Ausgaben automatisch ein, aber es gibt auch eine Hauptvariable, wenn Sie eine andere Farbe festlegen möchten. Um die gesamte farbige Terminalausgabe von Git zu deaktivieren, können Sie Folgendes tun:
git config set color.ui
git config --global color.ui falseDie Standardeinstellung von color.ui ist auto, wodurch Farben direkt auf die Terminalausgabe angewendet werden. Dabei werden Farbcodes nicht ausgegeben, wenn die Ausgabe in eine Pipe oder Datei umgeleitet wird.
Sie können den Wert color.ui auch auf always setzen. Dann werden Farbcodes auch ausgegeben, wenn die Ausgabe in Dateien oder Pipes umgeleitet wird. Das kann Probleme verursachen, da die empfangende Pipe möglicherweise keine farbcodierten Eingaben erwartet.
Git-Farbwerte
Neben color.ui gibt es auch andere Farbeinstellungen, die auf false, auto oder always gesetzt werden können. Sie können einen bestimmten Farbwert haben: normal, black, red, green, yellow, blue, magenta, cyan, white. Farben können als hexadezimale Farbwerte wie #1c87c9 oder als ANSI-256-Farbwerte angegeben werden, wenn das Terminal dies unterstützt.
Git-Farbkonfigurationseinstellungen
| color.branch | Legt die Ausgabefarbe des Git-Branch-Befehls fest. |
|---|---|
color.branch.<slot> | Ist für die Ausgabe von Git branch relevant. <slot> ist einer der folgenden Werte: 1. aktueller Branch 2. lokaler Branch 3. entfernter Branch 4. Upstream-Branch 5. einfach (jede andere Referenz) |
| color.diff | Gibt git diff, git log und git show Farben |
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, remote Branch, tag, stash oder HEAD. Sie werden entsprechend auf lokale Branches, Remote-Tracking-Branches, Tags, gestashte Ä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> legt fest, auf welchen Teil der grep-Ausgabe (context, filename, function, line number, match, match Context, match Selected, selected, separator) die Farbe angewendet werden soll. |
| color.interactive | Gibt Farbe für interaktive Eingabeaufforderungen und Anzeigen (z. B. git add --interactive, git clean --interactive) |
color.interactive.<slot> | Zielt auf eine „interaktive Ausgabe“. 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 Farbausgabe für den Befehl git show branch. |
| color.status | Aktiviert oder deaktiviert Farbausgabe für den Git-Status. |
color.status.<slot> | Gibt eine benutzerdefinierte Farbe für definierte git status-Elemente an. <slot> unterstützt die folgenden Werte: header, added or updated, changed, untracked, branch, nobranch, unmerged. |
Die git config-Aliase
Aliase sind benutzerdefinierte Kurzbefehle, die angeben, welcher Befehl in längere oder kombinierte Befehle erweitert wird. Es ist nicht nötig, häufig verwendete Befehle mit Aliasen zu tippen. Git hat ein eigenes Alias-System, das hauptsächlich verwendet wird, um den git commit-Befehl zu verkürzen. Der Befehl git config wird verwendet, um Aliase zu konfigurieren.
git config set alias
git config --global alias.ci commitAliase können mit anderen Aliasen besonders leistungsstarke Kombinationen erzeugen.
git config aliases
git config --global alias.amend ci --amendIm obigen Beispiel setzt ein Alias amend den ci-Alias zu einem neuen Alias zusammen, der --amend verwendet
Formatierung & Leerzeichen
| Feature | Beschreibung | Git Config Command |
|---|---|---|
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 anfänglichen Tab-Einzug als Fehler hervor. | (Mit anderen Regeln kombiniert) |
blank-at-eof | Hebt Leerzeilen hervor, die am Ende einer Datei eingefügt wurden. | (Mit anderen Regeln kombiniert) |
trailing-space | Hebt nachgestellte Leerzeichen hervor. | (Mit anderen Regeln kombiniert) |
cr-at-eol | Hebt einen Wagenrücklauf am Zeilenende hervor. | (Mit anderen Regeln kombiniert) |
tabwidth=<n> | Gibt an, wie viele Zeichenpositionen ein Tab einnimmt. Standard ist 8. Zulässige Werte: 1-63. | git config --global core.whitespace "tabwidth=<n>" |
Practice
Which of the following is a correct use of the 'git config' command?