Wohin wird git config --global geschrieben?

1024

In git config --globalwelche Datei wird beim Einrichten geschrieben?

Beispiel:

git config --global core.editor "blah"

Ich kann es an diesen Orten nicht finden:

C:\Program Files\Git\etc\gitconfig

C:\myapp\.git\config

Ich habe keine ENV eingestellt?

Meine Git-Version: 1.6.5.1.1367.gcd48 - unter Windows 7

Ian Vaughan
quelle
1
Verwenden Sie msysgit oder etwas anderes?
Codeguru
359
git config --global --editsollte Ihnen den genauen Speicherort mitteilen, egal welche Art von Setup Sie haben - schauen Sie sich einfach an, welche Datei in Ihrem Editor angezeigt wird.
MatrixFrog
55
git config --global --listwar auch nützlich, wenn es nicht existiert, da es den Ort angibt, an dem Git es erwartet.
AJP
4
@AJP: Dies ist genau mein Problem, aber wie kann man ändern, wo es gespeichert / gelesen werden soll?
Stijn de Witt
1
git config --list --show-origin wird Ihnen den Ort
mitteilen

Antworten:

1239

Update 2016: Mit Git 2.8 (März 2016) können Sie einfach Folgendes verwenden:

git config --list --show-origin

Und mit Git 2.26 (Q1 2020) können Sie eine --show-scopeOption hinzufügen

git config --list --show-origin --show-scope

Sie werden sehen, welche Konfiguration wo eingestellt ist.
Siehe " Woher kommen die Einstellungen in meiner Git-Konfiguration? "

Wie Steven Vascellaro weist darauf hin , in den Kommentaren ,

Es funktioniert mit nicht standardmäßigen Installationsorten. (dh Git Portable )

(wie die neueste PortableGit-2.14.2-64-bit.7z.exe, die überall unkomprimiert werden kann)


Ursprüngliche Antwort (2010)

Aus den Dokumenten :

--global

Für Schreiboptionen: Schreiben Sie in eine globale ~/.gitconfigDatei und nicht in das Repository .git/config.

Da Sie Git für Windows verwenden , ist möglicherweise nicht klar, welchem ​​Speicherort dies entspricht. Aber wenn Sie sich etc / profile (in C:\Program Files\Git) ansehen , werden Sie sehen:

HOME="$HOMEDRIVE$HOMEPATH"

Bedeutung:

C:\Users\MyLogin

(unter Windows 7)

Das heißt, die Datei ist C:\Users\MyLogin\.gitconfigfür Git in Windows 7.

VonC
quelle
8
Ich war wirklich dumm, ich habe dem Bearbeitungsbefehl nicht das Flag "--global" hinzugefügt! "git config --global --edit" zeigte die Datei mit all meinen Konfigurationsänderungen. "git config --edit" war die Datei, die ich immer wieder geöffnet und überlegt habe, wo sich das gerade eingestellte Konfigurationselement editor / compare / etc befindet! Danke vielmals.
Ian Vaughan
6
Vielen Dank. Ich habe andere Orte gesehen, an denen es heißt, dass es bei% USERPROFILE% liegt. Auf meinem Computer werden HOMEDRIVE und HOMEPATH einem Netzwerklaufwerk neu zugeordnet. Die Suche auf meinem lokalen Laufwerk ergab nichts. Das hat also sehr geholfen.
Mike M. Lin
2
Wirklich nützlich, ich hatte das gleiche Problem - wenn Sie sich in einer Domain mit einem zugeordneten Heimlaufwerk befinden, wird versucht, die Git-Konfiguration dort zu erstellen. Dies wäre eine gute Feature-Anfrage - verwenden Sie% HOMEDRIVE% oder% USERPROFILE%
Plasmid87
2
Warum heißt das global, wenn es nur für einen Benutzer ist? Wäre nicht (für Unix) /etc/gitconfig"global" und ~/.gitconfignur "lokal" ..... und ich denke .git/config"hyperlokal" ----- Grundsätzlich finde ich den "globalen" Begriff für dieses verwirrend, und ich fragte sich, ob es einen guten Grund für die Nomenklatur gab?
Peter Ajtai
7
@PeterAjtai "global", weil es für Ihr gesamtes Repository ist. Im Gegensatz zu "lokal" (nur für ein Repo) oder "System" (für alle Repo, für alle Benutzer)
VonC
123

Ich habe auch .gitconfigauf meinem Windows-Computer nach dem Globalen gesucht und diesen netten Trick mit git gefunden.

Führen Sie ein: aus git config --global -e. Wenn Sie Glück haben, wird ein Texteditor mit Ihrer globalen .gitconfigDatei geladen . Suchen Sie einfach den Ordner von dort aus (oder versuchen Sie es mit Speichern unter ...), et voilà! :-)

WÜTEND
quelle
Genau das, wonach ich gesucht habe! der -e Befehl! Weil das gleichzeitige Bearbeiten einer Eigenschaft nicht mein Kern ist.
Patareco
1
C:\Users\<user_name>\.gitconfigWenn Sie diesen Befehl ausführen, wird auch ein Befehl erstellt, wenn er fehlt.
pmbanka
Ich
laufe
73

Auf * nixes ist es in ~/.gitconfig. Gibt es eine entsprechende Datei in Ihrem Haus?

Unter Windows können Sie Git Bash eingeben

notepad ~/.gitconfig
Ben
quelle
6
Dies sollte unter Windows gleich sein.
Felix Kling
2
Wenn du es leicht erreichen willst, schreibe einen Alias ​​:) Hier ist meiner : alias gitconfig='open -a Sublime\ Text.app ~/.gitconfig'. Verwenden Sie einen beliebigen Texteditor.
aug
43

Die Pfade für msysgit sind:

Windows XP -C:\Documents and Settings\<user_name>\.gitconfig

Windows Vista + C:\Users\<user_name>\.gitconfig

Hash
quelle
17
Wahrscheinlich ist es besser, dies als% USERPROFILE% zu beschreiben, als dass die Antwort für alle Windows-Versionen in Vergangenheit, Gegenwart und Zukunft funktioniert.
Jarmod
3
Außer ich denke, es ist tatsächlich% HOMEDRIVE %% HOMEPATH% wie in anderen Antworten, was in vielen Fällen% USERPROFILE% entspricht, aber einige von uns haben IT-Konfigurationen, die es stattdessen auf ein zugeordnetes Laufwerk verweisen.
Ojchase
34

Der globale Speicherort wird unter Windows MsysGit mithilfe der Umgebungsvariablen HOMEDRIVE und HOMEPATH abgeleitet, sofern Sie keine Umgebungsvariable HOME definiert haben. Das ist im 'Profil'-Skript detailliert beschrieben.

In meiner Unternehmensumgebung lautet HOMEDRIVE H: und wird dann einer Netzwerk-URL \\ share \ $ zugeordnet. Das gesamte Los wird dann als "Eigene Dateien" zugeordnet, was andere nicht erwarten würden. Möglicherweise sind weitere Probleme mit der Neuzuordnung des Laufwerks zur URL aufgetreten. Ich kann die Variablen HOMEDRIVE oder HOMEPATH sowieso nicht einmal anpassen.

In meinem Fall habe ich eine persönliche HOME-Umgebungsvariable definiert und auf D: \ git \ GitHOME verwiesen und alle diese GIT-Dateien (ohne und ohne Erweiterung) zur sicheren Aufbewahrung in das GitHOME-Verzeichnis kopiert.

Die Windows-Umgebungsvariablen können über die Registerkarte Erweitert im Dialogfeld Eigenschaften von Arbeitsplatz festgelegt werden.

Philip Oakley
quelle
1
Ich habe die Antworten durchgeblättert, die gerade auf den Variablen HOMEDRIVEund veröffentlicht wurden HOMEPATH, da sie mich gerade bei der Verwendung von Bower erwischt haben. Es scheint, dass eine Reihe von Dienstprogrammen unter Windows von <system>:\User\<username>\.gitconfig, while the Git tool itself saves to % HOMEPATH% \. Gitconfig . I had to go one step further and copy the updated config file from my H: `(unser Netzwerk verwendet dafür denselben Laufwerksbuchstaben) in meinen lokalen Benutzerordner gelesen hat. Erst dann hat Git die Regeln korrekt verwendet, als er von Bower aufgerufen wurde.
1
@ZaLiTHkA, In meinem Unternehmensnetzwerk wird das Home-Laufwerk (H :) des Benutzers ebenfalls wieder dem Speicherort C: \ User \ zugeordnet, sodass ich das nicht bemerkt habe. Wenn Sie herausfinden können, welche FOSS-Dienstprogramme den Fehler machen, sind dies nützliche Informationen, um die Berichterstellung / Behebung dieser Tools zu erleichtern. Wenn es sich um interne Unternehmenstools handelt, sind Sie auf sich allein gestellt ;-)
Philip Oakley
Sofern es nicht komplizierter als eine einfache Setter-Zeile ist, wird HOME im Skript etc \ profile nicht definiert. Es scheint immer noch wie beschrieben zu funktionieren, aber ich bin mir nicht sicher, wo HOME heutzutage eingestellt wird.
Ojchase
@ojchase Mein Teil der Antwort, wo --glob config geschrieben ist, bezieht sich speziell auf Windows. Das Linux-Kern-Git schreibt an Orte, an denen das XDG-Ding Anweisungen gibt (dh ich bin mir bewusst, dass Linux an andere Orte schreibt und andere Konventionen hat, und vor allem hat es ein Stammverzeichnis, während Windows 'Drives' hat ;-)
Philip Oakley
@PhilipOakley Ich bezog mich eigentlich auch auf Windows; Entschuldigung, ich war unklar. Wenn ich Ihre Antwort und andere kombiniere, habe ich eine Art HOME = $HOMEDRIVE$HOMEPATH(oder ähnliche) Zeile erwartet, C:\Program Files\Git\etc\profileund diese Zeile scheint nicht zu existieren, ist es aber wahrscheinlich gewohnt? Ich konnte nicht genau herausfinden, was $ HOME setzt, es sei denn, es wird durch die Umgebungsvariable festgelegt, was ich lieber nicht tun würde.
Ojchase
12

Wenn Sie TortoiseGit auf einem Windows-PC verwenden, können Sie Folgendes verwenden:

Settings / Git / Config / Edit global .gitconfig

um die globale .gitignore-Datei zu öffnen.

Wenn Sie Ihren Windows (7) -PC jedoch in einer Domäne verwenden, ist Ihr Profilverzeichnis möglicherweise eine Netzwerkfreigabe (als Laufwerk bereitgestellt). In diesem Fall zeigt TortoiseGit (mindestens: 1.6.5.0) Sie auf das falsche Verzeichnis (auf c: ...). Weitere Informationen finden Sie in der geschlossenen TortoiseGit- Ausgabe 922 . Oder verwenden Sie% HOMEDRIVE %% HOMEPATH%, um das Verzeichnis zu öffnen, das die .gitignore-Datei enthält.

DanielaWaranie
quelle
10

Ich verwende SmartGit mit msysgit unter Windows 8.1 und habe festgestellt, dass die gitconfigDatei drei verschiedene Speicherorte haben kann:

%USERPROFILE%\.gitconfig
C:\Program Files (x86)\Git\etc\gitconfig
C:\Program Files (x86)\SmartGitHg\git\etc\gitconfig

Aber derjenige, der verwendet wird, ist der von %USERPROFILE%\.gitconfig.

Benny Neugebauer
quelle
6

Es kann nützlich sein, /usr/share/git-core/Folgendes zu beachten (für * nix-Plattformen): Einige Arten von globalen Git-Konfigurationen / -Informationen werden gespeichert , z. B. Git-Autocompletion-Skripte und die folgenden (Standard-) Hooks:

  • applypatch-msg
  • nach dem Update
  • Pre-Commit
  • prepare-commit-msg
  • commit-msg
  • Pre-Applypatch
  • Pre-Rebase
  • aktualisieren

Jeder dieser Befehle kann einen eigenen Befehlssatz enthalten, der zu dem durch die jeweiligen Dateinamen beschriebenen Zeitpunkt ausgeführt werden soll.

Samstav
quelle
2
Nicht nützlich für die OP-Frage.
Orbfish
5

Ich hatte auch ein Problem mit meinem globalen .gitconfig Dies ist für den Fall, dass jemand auch dieses seltsame hat

git sagte:

Schwerwiegend: Beim Lesen der Konfigurationsdateien ist ein unbekannter Fehler aufgetreten

Jetzt habe ich es behoben. Das Problem war eine Sekunde .gitconfigin diesem Ordner:

c: \ Users \ myUser.config \ git \ config

Ich weiß nicht, woher es kam ... Aber jetzt funktioniert alles wieder wie ein Charme.

Mähne
quelle
5

Wann wird die globale .gitconfig-Datei erstellt?

Zunächst einmal erstellt git die globale Konfigurationsdatei (.gitconfig) während der Installation nicht automatisch. Die Datei wird erst erstellt, wenn sie zum ersten Mal beschrieben wird. Wenn Sie noch nie eine Systemvariable festgelegt haben, befindet sich diese nicht in Ihrem Dateisystem. Ich vermute, das könnte die Ursache des Problems sein.

Eine Möglichkeit, Git zu bitten, es zu erstellen, besteht darin, eine Bearbeitung anzufordern. Dadurch wird die Erstellung der Datei erzwungen.

git config --global --edit

Wenn Sie den Home-Ordner des Benutzers überwachen, wenn Sie diesen Befehl ausführen, wird die .gitconfig-Datei auf magische Weise angezeigt.

Wo ist die Git-Konfiguration gespeichert?

Hier finden Sie eine kurze Übersicht über den Namen und den Speicherort der Konfigurationsdateien, die den drei Git-Bereichen zugeordnet sind, nämlich System , global und lokal :

  • System-Git-Konfiguration: Datei mit dem Namen gitconfig in -git-install-location- / ming <32> / etc.
  • Globale Git-Konfiguration: Datei mit dem Namen .gitconfig im Home-Ordner des Benutzers (C: \ Users \ git user)
  • Lokale Git-Konfiguration: Datei mit dem Namen config im Ordner .git des lokalen Repos

Sehen ist natürlich Glauben, also hier ein Bild, das jede Datei und jeden Ort zeigt. Ich habe das Bild aus einem Artikel gezogen, den ich zu diesem Thema geschrieben habe.

Speicherorte der Windows Git-Konfigurationsdatei (TheServerSide.com)

Speicherort der Git-Konfigurationsdateien

Cameron McKenzie
quelle
1
Es gibt einen vierten Ort namens Portable Config: Hier werden die 4 Orte erwähnt. Git für Windows unterstützt vier Konfigurationsebenen. Auf der untersten Ebene befinden sich die maschinenspezifischen Konfigurationseinstellungen, die als "portabel" bezeichnet werden, und "% ProgramData% \ Git \ config"
Badr Elmers
1
Verblüfft! Ich werde den Artikel mit den neuen Informationen aktualisieren. Prost!
Cameron McKenzie
4

Ich verwende Windows 7 und verwende Git als Setup, indem ich den Anweisungen auf GitHub folge (ein oder zwei Jahre zurück). Ein ziemlich häufiger Anwendungsfall hätte ich gedacht. Keine der obigen Antworten hat mir geholfen, und nach viel Frust fand ich schließlich meine 'echte' gitconfig-Datei im folgenden Verzeichnis;

C: \ Benutzer \ Rechnung \ AppData \ Local \ GitHub \ PortableGit_054f2e797ebafd44a30203088cd 3d58663c627ef \ etc.

Ersetzen Sie offensichtlich Ihren Benutzernamen und vermutlich das Suffix, nachdem PortableGit_ eine eindeutige GUID oder ähnliches ist.

Bill Forster
quelle
1
Dies ist nur bei Verwendung von GitHub für Windows der Fall.
Schlange
3

Ich denke, es ist wichtig, dieses Zitat zu posten:

Git für Windows unterstützt vier Konfigurationsebenen. Auf der untersten Ebene befinden sich die maschinenspezifischen Konfigurationseinstellungen, die als "portabel" bezeichnet werden, und "% ProgramData% \ Git \ config". Eine Prioritätsstufe sind die als "System" bezeichneten installationsspezifischen Konfigurationseinstellungen, die sich unter "\ mingw64 \ etc \ gitconfig" befinden. Für beide Konfigurationsdateien sind im Allgemeinen erhöhte Berechtigungen zum Ändern erforderlich.

Beginnend mit den als "globale" Konfiguration bekannten spezifischen Werten, die unter "% UserProfile% .gitconfig" zu finden sind, finden wir die "vom Benutzer bearbeitbaren" Konfigurationsdateien. Die Konfigurationseinstellungen mit der höchsten Priorität befinden sich in der "lokalen" Konfiguration, die normalerweise unter ".git \ config" zu finden ist.

In dem verlinkten Blog wird empfohlen, die spezifischen Konfigurationseinstellungen für "System" oder "Installation" zu ändern. Dies ist in Ordnung, aber Benutzer sollten erwarten, dass andere Installationen von Git diese Einstellungen nicht übernehmen. Wenn Sie maschinenweite Einstellungen wünschen, verwenden Sie die Konfigurationsdatei "portabel", andernfalls wählen Sie die Konfigurationsdateien "global" oder "lokal".

Hoffentlich finden die Leute diese Informationen nützlich.

Quelle

Badr Elmers
quelle
3

Wie @MatrixFrog in ihrem Kommentar hervorhob , möchten Sie möglicherweise Folgendes ausführen , wenn das Ziel darin besteht, die Konfiguration zu bearbeiten:

git config --global --edit

Dieser Befehl öffnet die Konfigurationsdatei (in diesem Fall --globaldiejenige) im Editor Ihrer Wahl und wartet darauf, dass die Datei geschlossen wird (genau wie während git rebase -i).

Dmitry Parzhitsky
quelle
Sie können diese verwenden , um herauszufinden , wo die globale .gitconfigbefindet -. Solange Ihr Editor Ihnen sagt , was Verzeichnis die Datei befindet sich in Sie können auch andere Optionen verwenden ( --system, --localusw.) zu finden und zu bearbeiten anderen .gitconfigOrten. PS -eist das gleiche wie--edit
LightCC
1

Deinstallieren Sie Msysgit und installieren Sie Cygwin + Git. Dann ist die globale '.gitconfig' hier: C: \ cygwin (64) \ home \ [Benutzername] \. Gitconfig.

Jetzt müssen Sie sich keine Gedanken mehr über eine Umgebungsvariable machen, die von anderen Programmen verwendet werden kann. Beispielsweise hat mich meine Umgebungsvariable auf ein zugeordnetes Laufwerk in meiner Windows-Arbeitsdomänenumgebung verwiesen. Ich möchte nicht, dass meine globale .gitconfig auf meinem zu Hause zugeordneten Laufwerk sitzt. Ich weiß auch nicht, was mit anderen Anwendungen passieren könnte, die möglicherweise auf dieser Windows-Umgebungsvariablen basieren. Für die Betriebsabteilung muss diese Umgebungsvariable möglicherweise aus einem bestimmten Grund auf das zugeordnete Laufwerk festgelegt sein.

Außerdem müssen Sie sich keine Sorgen machen, dass Mysysgit Ihre Konfigurationseinstellungen für das Profil überschreibt, wenn Sie mit dieser Methode einen bestimmten Pfad zu globaler .gitconfig angeben.

Im Allgemeinen sparen Sie sich und verwenden Sie Cygwin Bash Shell in Windows und seien Sie glücklicher

Meffekt
quelle
1

Ich hatte ein ähnliches Problem. Das Problem war, dass sich die .gitconfigDatei in befand

C:\Users\MyLogin\.gitconfig\

(unter Windows 7)

Mit anderen Worten, die Datei befand sich in C:\Users\MyLogin\.gitconfig\.gitconfigstatt in C:\Users\MyLogin\.gitconfig(wo Git nach den Dateien suchte).

Rolandog
quelle
1

.gitconfig Speicherort

MacOS-Test OK

global

# global config
$ cd ~/.gitconfig

# view global config
$ git config --global -l

lokal

# local config
$ cd .git/config

# view local config
$ git config -l

Vielleicht ein Bonus für dich: Vimoder VSCodefür die Bearbeitung der Git-Konfiguration


# open config with Vim

# global config
$ vim ~/.gitconfig

# local config
$ vim .git/config


# open config with VSCode

# global config
$ code ~/.gitconfig

# local config
$ code .git/config
xgqfrms
quelle
0

Ich hatte mein Git installiert in: C:\Users\_myuserfolder_\AppData\Local\Programs\Git

KikeSP
quelle