Wie zeige ich meine globale Git-Konfiguration?

1076

Ich möchte alle konfigurierten Git-Abschnitte anzeigen.

Ich habe nur gefunden git config --get core.editorund möchte alles ausgeben, was global konfiguriert ist, nicht nur den konfigurierten Standardeditor.

wullxz
quelle
3
Was ist falsch daran, .gitconfig anzusehen?
Turm
1
Beachten Sie, dass Sie in Kürze (Q3 / Q4 2015) mit git 2.6 die Option haben werden --name-only, nur die Konfigurationsschlüssel ohne deren Werte aufzulisten. Siehe meine Antwort unten
VonC
41
$ git config --list Überprüfen Ihrer Einstellungen
TarranJones
5
Es sollte git config --global --listwie hier weiter
unten

Antworten:

1722

Sie können verwenden:

git config --list

oder schauen Sie sich Ihre ~/.gitconfigDatei an. Die lokale Konfiguration befindet sich in der .git/configDatei Ihres Repositorys .

Verwenden:

git config --list --show-origin

um zu sehen, wo diese Einstellung definiert ist (global, Benutzer, Repo usw.)

Cameron Skinner
quelle
24
Danke, ich habe euch beide positiv bewertet. Ich wollte das weiß git config --listBefehl , weil ich bei der effektiven config in einem Repository aussehen kann , und ich kann mit dem entsprechenden Parameter (lokal, global und Systemkonfiguration abweichen --global, --local, --system). Ich werde Ihre Antwort akzeptieren, sobald ich dazu in der Lage bin, weil Sie ein paar Sekunden schneller waren :)
wullxz
2
Seien Sie vorsichtig, es gibt viele mögliche Quellen für die Git-Konfiguration. Das Betrachten der Datei gibt nur einen Teil. Die Antwort von @ linquize ist tatsächlich richtig.
vonbrand
2
@vonbrand: --list entspricht -l.
Cameron Skinner
9
Kurzschrift (wie -l) ist nützlich, wenn Sie ein Power-User werden und die Funktion häufig genug verwenden, um tatsächlich von der Eingabe weniger Zeichen zu profitieren. Ich finde es einfacher, die lange --listOption zu finden und mich daran zu erinnern . Für weniger offensichtliche Abkürzungen muss ich oft überprüfen, wofür sie stehen, deshalb bevorzuge ich lange Namen. Mit der Befehlsvervollständigung sind sie noch einfacher, wenn Sie nicht wirklich alle Zeichen eingeben müssen, aber dennoch den gesamten Optionsnamen sehen.
Krzysztof Jabłoński
1
Was ist, wenn git config --listnichts gedruckt wird?
Matej J
247

Der kürzeste,

git config -l

zeigt alle geerbten Werte von: system, global und local

linquize
quelle
13
Unterscheidet sich dies von git config --list oder ist es nur eine kürzere Art, es zu schreiben?
Magnilex
8
@Magnilex es ist nur eine kürzere Art, es zu schreiben
LemenDrop
3
Die Konfigurationsdateien zeigen möglicherweise nicht immer alle geerbten Konfigurationen an, sondern git config -lalles. Hat mich gerettet, weil Git für Windows autocrlfin der Installation festgelegt ist und es in keiner Konfigurationsdatei enthalten ist, die ich finden kann.
Genorama
Ja, es gibt auch C: \ ProgramData \ Git \ Konfigurationsdatei - Ich denke, dies ist eine globale oder System-Git-Konfigurationsdatei
Alex
129

Wie bearbeite ich meine globale Git-Konfiguration?

Kurze Antwort: git config --edit --global


Um die Git-Konfiguration zu verstehen, sollten Sie Folgendes wissen:

Git-Konfigurationsvariablen können auf drei verschiedenen Ebenen gespeichert werden. Jede Ebene überschreibt die Werte der vorherigen Ebene.

1. Systemebene (gilt für jeden Benutzer im System und alle seine Repositorys)

  • zu sehen, git config --list --system(möglicherweise müssen sudo)
  • zu setzen, git config --system color.ui true
  • um die Systemkonfigurationsdatei zu bearbeiten, git config --edit --system

2. Globale Ebene (Werte, die für Sie als Benutzer persönlich sind).

  • sehen, git config --list --global
  • zu setzen, git config --global user.name xyz
  • um die globale Konfigurationsdatei zu bearbeiten, git config --edit --global

3. Repository-Ebene (spezifisch für dieses einzelne Repository)

  • sehen, git config --list --local
  • zu setzen, git config --local core.ignorecase true( --localoptional)
  • zum Bearbeiten der Repository-Konfigurationsdatei git config --edit --local( --localoptional)

Wie kann ich alle Einstellungen anzeigen ?

  • Führen Sie es aus git config --listund zeigen Sie System- , globale und (falls in einem Repository) lokale Konfigurationen an
  • Ausführen git config --list --show-originzeigt auch die Ursprungsdatei jedes Konfigurationselements an

Wie lese ich eine bestimmte Konfiguration?

  • Laufen git config user.nameSie user.namezum Beispiel , um zu bekommen .
  • Sie können auch Optionen angeben --system, --global, --localdiesen Wert auf einem bestimmten Niveau zu lesen.

Referenz: 1.6 Erste Schritte - Erstes Git-Setup

kgf3JfUtW
quelle
1
git config --listAlle globalen, systemischen und lokalen anzeigen? Ich brauche Bestätigung :)
Adi Prasetyo
2
Nur um hinzuzufügen, wo sich die Konfigurationsdateien befinden: System: C: \ ProgramData \ Git \ config (in Windows). Global: C: \ Benutzer \ Benutzer \ .gitconfig (Windows) ~ / .gitconfig (Linux) Lokal: project-repo / .git / config
Alex
@AdiPrasetyo Ja. Sie können ausführen git config --list --show-origin, um den Ursprung jedes Konfigurationselements herauszufinden.
kgf3JfUtW
109
git config --list

ist ein Weg zu gehen. Normalerweise öffne ich mich aber einfach .gitconfig.

Turm
quelle
2
Wollten Sie ~/.gitconfigoder eine der anderen Dateien im Abschnitt DATEIEN von git help config?
Chwarr
1
@chwarr - Entschuldigung, ich verstehe nicht. Habe ich "beabsichtigt"?
Turm
1
Ich denke, Sie wollten sagen "Ich öffne mich normalerweise nur ~/.gitconfig.", Da Git .gitconfigim aktuellen Verzeichnis nicht sucht , unabhängig davon, wo Sie sich befinden. ( .gitconfigund ~/.gitconfigbenennen Sie unterschiedliche Dateien [ normalerweise ].) Die anderen in genannten Dateien git help confighaben unterschiedliche Dateinamen, daher die Annahme.
Chwarr
32

Sie können auch aufrufen git config -e, um die Konfigurationsdatei direkt in Ihrem Editor zu öffnen. Die Git-Konfigurationsdatei ist viel besser lesbar als die -lAusgabe, daher verwende ich immer das -eFlag.

Um es zusammenzufassen:

git config -l  # List Git configuration settings (same as --list)
git config -e  # Opens Git configuration in the default editor (same as --edit)
  • Ohne Parameter interagiert es mit dem lokalen .git/config.
  • Damit --globalinteragiert mit ~/.gitconfig.
  • Und --systemdamit interagiert mit $(prefix)/etc/gitconfig.

(Ich konnte nicht wirklich finden, was $(prefix)bedeutet, aber es scheint standardmäßig zu sein $HOME.)

leondepeon
quelle
13

Sie können auch verwenden cat ~/.gitconfig.

Ankit K Gupta
quelle
11

Git 2.6 (Sept / Okt 2015) fügt die Option hinzu --name-only, um die Ausgabe von a zu vereinfachen git config -l:

Siehe Commit a92330d , Commit f225987 , Commit 9f1429d (20. August 2015) von Jeff King ( peff) .
Siehe Commit ebca2d4 (20. August 2015) und Commit 905f203 , Commit 578625f (10. August 2015) von SZEDER Gábor ( szeder) .
(Zusammengeführt von Junio ​​C Hamano - gitster- in Commit fc9dfda , 31. August 2015)

config: --name-onlyOption ' ' hinzufügen, um nur Variablennamen aufzulisten

' git config' kann nur Werte oder Name-Wert-Paare anzeigen. Wenn ein Shell-Skript also die Namen der festgelegten Konfigurationsvariablen benötigt, muss es ' git config --list' oder ' --get-regexp' ausführen und die Ausgabe analysieren, um die Namen der Konfigurationsvariablen von ihren Werten zu trennen.
Eine solche Analyse kann jedoch nicht mit mehrzeiligen Werten umgehen.

Obwohl ' git config' eine nullterminierte Ausgabe für das Zeilenumbruchsichere Parsen erzeugen kann, ist dies in einem solchen Fall nicht sinnvoll, da Shells keine Nullzeichen verarbeiten können.

Sogar unser eigenes Bash-Vervollständigungsskript leidet unter diesen Problemen.

Helfen Sie dem Abschlussskript und den Shell-Skripten im Allgemeinen, indem Sie die --name-onlyOption ' ' einführen , um die Ausgabe von ' --list' und ' --get-regexp' so zu ändern , dass nur die Namen der Konfigurationsvariablen aufgelistet werden, sodass sie keine fehleranfällige Nachbearbeitung durchführen müssen Trennen Sie die Variablennamen nicht mehr von ihren Werten.

VonC
quelle
10

Eine wichtige Sache über git config:

git confighat --local, --globalund --systemEbenen und die entsprechenden Dateien.

So können Sie verwenden git config --local, git config --globalund git config --system.

Standardmäßig git configwird auf eine lokale Ebene geschrieben, wenn keine Konfigurationsoption übergeben wird. Lokale Konfigurationswerte werden in einer Datei gespeichert, die sich im .git-Verzeichnis des Repositorys befindet:.git/config

Die Konfiguration auf globaler Ebene ist benutzerspezifisch, dh sie wird auf einen Betriebssystembenutzer angewendet. Globale Konfigurationswerte werden in einer Datei gespeichert, die sich im Home-Verzeichnis eines Benutzers befindet. ~/.gitconfigauf Unix-Systemen und C:\Users\<username>\.gitconfigunter Windows.

Die Konfiguration auf Systemebene wird auf eine gesamte Maschine angewendet. Dies umfasst alle Benutzer eines Betriebssystems und alle Repositorys. Die Konfigurationsdatei auf Systemebene befindet sich in einer gitconfigDatei außerhalb des Systemstammpfads. $ (Präfix) / etc / gitconfig auf Linux-Systemen. Unter Windows befindet sich diese Datei in C:\ProgramData\Git\config.

Sie können also diese globale .gitconfigDatei suchen und bearbeiten.

Oder Sie können verwenden git config --global --list.

Dies ist genau die Linie, die Sie brauchen.

Geben Sie hier die Bildbeschreibung ein

Prosti
quelle
7

Wenn Sie nur einen Teil der Git-Konfiguration auflisten möchten, z. B. Alias , Core , Remote usw., können Sie das Ergebnis einfach über grep weiterleiten. Etwas wie:

git config --global -l | grep core
dleal
quelle
4

Auf Linux-basierten Systemen können Sie eine Konfigurationsdatei über anzeigen / bearbeiten

vi/vim/nano .git/config

Stellen Sie sicher, dass Sie sich im Git init-Ordner befinden.

Wenn Sie damit arbeiten möchten --global config, ist es

vi/vim/nano .gitconfig

on / home / userName

Dies sollte bei der Bearbeitung helfen: https://help.github.com/categories/setup/

Daniel Perník
quelle
3

Um alle Konfigurationen zu finden, schreiben Sie einfach diesen Befehl:

git config --list

In meinem lokalen führe ich diesen Befehl aus.

Md Masud@DESKTOP-3HTSDV8 MINGW64 ~
$ git config --list
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
rebase.autosquash=true
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
http.sslbackend=openssl
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
credential.helper=manager
[email protected]
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
filter.lfs.clean=git-lfs clean -- %f
infomasud
quelle
Der Befehl git config ist eine praktische Funktion, mit der Git-Konfigurationswerte auf globaler oder lokaler Projektebene festgelegt werden. Diese Konfigurationsebenen entsprechen .gitconfig-Textdateien. Lesen Sie hier mehr: atlassian.com/git/tutorials/setting-up-a-repository/git-config
infomasud
Großartig, können Sie das zu Ihrer Antwort hinzufügen?
RamenChef
1

Seit Git 2.26.0 können Sie folgende --show-scopeOptionen verwenden:

git config --list --show-scope

Beispielausgabe:

system  rebase.autosquash=true
system  credential.helper=helper-selector
global  core.editor='code.cmd' --wait -n
global  merge.tool=kdiff3
local   core.symlinks=false
local   core.ignorecase=true

Es kann mit kombiniert werden

  • --localfür die Projektkonfiguration, --globalfür die Benutzerkonfiguration, --systemfür die Konfiguration aller Benutzer
  • --show-origin um den genauen Speicherort der Konfigurationsdatei anzuzeigen
ford04
quelle