Gdzie pisze się git config --global?

1024

Kiedy użyjesz go git config --globaldo skonfigurowania, do którego pliku zapisze?

Przykład:

git config --global core.editor "blah"

Nie mogę go znaleźć w tych miejscach:

C:\Program Files\Git\etc\gitconfig

C:\myapp\.git\config

Nie ustawiłem ENV?

Moja wersja Git: 1.6.5.1.1367.gcd48 - w systemie Windows 7

Ian Vaughan
źródło
1
Czy używasz msysgit lub czegoś innego?
codeguru
359
git config --global --editpowinien podać dokładną lokalizację bez względu na rodzaj konfiguracji - wystarczy spojrzeć na plik pojawiający się w edytorze.
MatrixFrog,
55
git config --global --listbył także przydatny, gdy nie istnieje, ponieważ podał lokalizację, w której git się spodziewa.
AJP
4
@AJP: To jest dokładnie mój problem, ale jak zmienić, gdzie chce się zapisać / odczytać?
Stijn de Witt
1
git config --list --show-origin poda ci lokalizację
eddyP23,

Odpowiedzi:

1237

Aktualizacja 2016: dzięki git 2.8 (marzec 2016) możesz po prostu użyć:

git config --list --show-origin

A dzięki Git 2.26 (Q1 2020) możesz dodać --show-scopeopcję

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

Zobaczysz, która konfiguracja jest ustawiona gdzie.
Zobacz „ Skąd pochodzą ustawienia w mojej konfiguracji Git?

Jak zauważa Steven Vascellaro w komentarzach ,

będzie działać z niestandardowymi lokalizacjami instalacji. (tj. Git Portable )

(jak najnowszy PortableGit-2.14.2-64-bit.7z.exe, który można zdekompresować w dowolnym miejscu)


Oryginalna odpowiedź (2010)

Z dokumentów :

--światowy

W przypadku opcji zapisu: napisz do ~/.gitconfigpliku globalnego zamiast do repozytorium .git/config.

Ponieważ używasz Git dla Windows , może nie być jasne, z jaką lokalizacją to odpowiada. Ale jeśli spojrzysz na etc / profile (in C:\Program Files\Git), zobaczysz:

HOME="$HOMEDRIVE$HOMEPATH"

Znaczenie:

C:\Users\MyLogin

(w systemie Windows 7)

Oznacza to, że plik jest w C:\Users\MyLogin\.gitconfigGit w systemie Windows 7.

VonC
źródło
8
Byłem naprawdę głupi, nie dodałem flagi „--global” do polecenia edycji! „git config --global --edit” pokazał plik ze wszystkimi moimi zmianami konfiguracji, „git config --edit” to plik, który ciągle otwierałem i myślałem, gdzie jest ten element konfiguracji edytora / porównania / etc, który właśnie ustawiłem! Wielkie dzięki.
Ian Vaughan
6
Dzięki. Widziałem inne miejsca, w których podano, że jest na% USERPROFILE%. Na moim komputerze HOMEDRIVE i HOMEPATH są mapowane na dysk sieciowy. Wyszukiwania na moim lokalnym dysku zbliżały się niczym. To bardzo pomogło.
Mike M. Lin
2
Naprawdę przydatne, miałem ten sam problem - jeśli jesteś w domenie z zamapowanym dyskiem domowym, spróbuje utworzyć tam konfigurację git. Byłoby to dobre żądanie funkcji - użyj% HOMEDRIVE% lub% USERPROFILE%
plazmid87
2
Dlaczego nazywa się to globalnym, skoro dotyczy tylko jednego użytkownika? Nie byłby (dla unixa) /etc/gitconfig„globalny”, a ~/.gitconfigjedynie „lokalny” ..... i chyba .git/config„hiper-lokalny” ----- Zasadniczo uważam, że termin „globalny” jest mylący i ja zastanawiał się, czy istnieje dobry powód nazewnictwa?
Peter Ajtai
7
@PeterAjtai „global”, ponieważ jest przeznaczony dla wszystkich repozytoriów. W przeciwieństwie do „lokalnego” (tylko dla jednego repozytorium) lub „systemu” (który jest dla każdego repo, dla wszystkich użytkowników)
VonC
123

Szukałem także globalnego .gitconfigna moim komputerze z systemem Windows i znalazłem tę fajną sztuczkę za pomocą git.

Wykonaj: git config --global -ea następnie, jeśli będziesz miał szczęście, otrzymasz edytor tekstowy z .gitconfigplikiem globalnym . Po prostu wyszukaj folder stamtąd (lub spróbuj zapisać jako ...), et voilà! :-)

SZALONY
źródło
Właśnie tego szukałem! polecenie -e! Ponieważ edytowanie właściwości naraz nie jest moją istotą.
Patareco
1
Uruchomienie tego polecenia spowoduje również utworzenie, C:\Users\<user_name>\.gitconfigjeśli go brakuje.
pmbanka
Pracuję w trybie bez okien i nigdzie nie mogę znaleźć lokalizacji
Triynko
73

Na * nixes, to jest ~/.gitconfig. Czy w twoim domu jest odpowiedni plik?

W systemie Windows możesz wpisać git bash

notepad ~/.gitconfig
Ben
źródło
6
Powinno być tak samo w systemie Windows.
Felix Kling
2
Jeśli chce dostać się do niego łatwo napisać alias :) Oto moje: alias gitconfig='open -a Sublime\ Text.app ~/.gitconfig'. Używaj dowolnego edytora tekstu.
sierpnia
43

Ścieżki dla msysgit to:

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

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

haszysz
źródło
17
Prawdopodobnie lepiej opisać to jako% USERPROFILE%, wtedy odpowiedź będzie działać dla wszystkich wersji systemu Windows, przeszłych, obecnych i przyszłych.
jarmod
3
Poza tym myślę, że tak naprawdę jest to% HOMEDRIVE %% HOMEPATH%, jak w innych odpowiedziach, co w wielu przypadkach jest równe% USERPROFILE%, ale niektórzy z nas mają konfiguracje informatyczne wskazujące go na zamapowany dysk.
ojchase
34

Globalna lokalizacja jest wyprowadzana na Windows MsysGit przy użyciu zmiennych środowiskowych HOMEDRIVE i HOMEPATH, chyba że zdefiniowano zmienną środowiskową HOME. Jest to szczegółowo opisane w skrypcie „profilu”.

W moim środowisku korporacyjnym HOMEDRIVE to H :, który jest następnie mapowany na sieciowy adres URL \\ udział \ $. Cały działka jest następnie odwzorowywany na „Moje dokumenty”, czego nie oczekują inni. Być może wystąpiły dalsze problemy z mapowaniem dysku do adresu URL. W każdym razie nie dostaję nawet zmiennych HOMEDRIVE ani HOMEPATH.

W moim przypadku zdefiniowałem osobistą zmienną środowiskową HOME i wskazałem ją na D: \ git \ GitHOME i skopiowałem wszystkie pliki GIT (które są bez rozszerzenia i rozszerzenia) do katalogu GitHOME w celu bezpiecznego przechowywania.

Zmienne środowiskowe systemu Windows można ustawić za pomocą karty Zaawansowane w oknie dialogowym Właściwości mojego komputera.

Philip Oakley
źródło
1
Przewijałem odpowiedzi, które zamierzam opublikować na zmiennych HOMEDRIVEi HOMEPATH, ponieważ one mnie złapały podczas korzystania z Bower. Wygląda na to, że wiele narzędzi w systemie Windows odczytano z <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: `(nasza sieć używa do tego tej samej litery dysku) do mojego lokalnego folderu użytkownika, dopiero wtedy Git poprawnie zastosował reguły po wywołaniu przez Bower.
1
@ZaLiTHkA, W mojej sieci firmowej dysk użytkownika Home (H :) jest ponownie mapowany z powrotem do lokalizacji C: \ User \, więc nie zauważyłem tego. Jeśli potrafisz zidentyfikować narzędzia FOSS, które popełniają błąd, to przydałyby się przydatne informacje w zakresie zgłaszania / naprawiania tych narzędzi. Jeśli są to wewnętrzne narzędzia korporacyjne, jesteś sam ;-)
Philip Oakley
O ile nie jest to bardziej skomplikowane niż prosta linia ustawiająca, nie widzę DOMU zdefiniowanego w skrypcie etc \ profile. Nadal wydaje się działać zgodnie z opisem, ale nie jestem pewien, gdzie obecnie ustawia się HOME.
ojchase
@ojchase Moja część odpowiedzi na pytanie, gdzie napisano --glob config, dotyczy konkretnie systemu Windows. Podstawowy git Linux zapisuje w miejscach takich jak XDG (tj. Wiem, że Linux pisze w innych miejscach i ma inne konwencje, i co ważne, ma katalog główny, podczas gdy Windows ma „Dyski” ;-)
Philip Oakley,
@PhilipOakley Miałem też na myśli system Windows; przepraszam, byłem niejasny. Łącząc twoją odpowiedź i inne, spodziewałem się czegoś w rodzaju HOME = $HOMEDRIVE$HOMEPATH(lub podobnej) linii C:\Program Files\Git\etc\profilei ta linia wydaje się nie istnieć, ale prawdopodobnie kiedyś? Nie byłem w stanie dokładnie ustalić, co ustawia $ HOME, chyba że ustawia go zmienna środowiskowa, której wolałbym nie robić.
ojchase
12

Jeśli używasz TortoiseGit na komputerze z systemem Windows, możesz użyć:

Settings / Git / Config / Edit global .gitconfig

aby otworzyć globalny plik .gitignore.

Ale jeśli używasz komputera z systemem Windows (7) w domenie, katalogiem profilu może być udział sieciowy (zamontowany jako dysk). W tym przypadku TortoiseGit (przynajmniej: 1.6.5.0) wskazuje ci zły katalog (na c: ...). Aby uzyskać więcej informacji, zobacz zamknięty numer TortoiseGit 922 . Lub używając% HOMEDRIVE %% HOMEPATH%, aby otworzyć katalog zawierający plik .gitignore.

DanielaWaranie
źródło
10

Używam SmartGit z msysgit w systemie Windows 8.1 i zauważyłem, że gitconfigplik może mieć trzy różne lokalizacje :

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

Ale ten, który jest używany, to ten z %USERPROFILE%\.gitconfig.

Benny Neugebauer
źródło
6

Przydatne może być zwrócenie uwagi (dla platform * nix): niektóre typy globalnej konfiguracji / informacji git są przechowywane /usr/share/git-core/, takie jak skrypty autouzupełniania git i następujące (domyślne) haki:

  • applypatch-msg
  • po aktualizacji
  • wstępnie zatwierdzić
  • przygotowanie-zatwierdzenie-msg
  • commit-msg
  • przed aplikacją
  • wstępna zmiana bazy
  • aktualizacja

Każde z nich może zawierać własny zestaw poleceń do wykonania w czasie opisanym przez ich nazwy plików.

samstav
źródło
2
Nieprzydatne w przypadku pytania PO.
orbfish
5

Miałem też problem z moją globalną. .gitconfig Tak jest w przypadku, gdy ktoś też ma to dziwne

git powiedział:

krytyczny: wystąpił nieznany błąd podczas odczytu plików konfiguracyjnych

Teraz to naprawiłem. Problem był drugi .gitconfigw tym folderze:

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

Nie wiem skąd to się wzięło ... Ale teraz wszystko znów działa jak zaklęcie.

Grzywa
źródło
5

Kiedy tworzony jest globalny plik .gitconfig?

Po pierwsze, git nie tworzy automatycznie globalnego pliku konfiguracyjnego (.gitconfig) podczas instalacji. Plik nie jest tworzony, dopóki nie zostanie zapisany po raz pierwszy. Jeśli nigdy nie ustawiłeś zmiennej systemowej, nie będzie ona dostępna w twoim systemie plików. Zgaduję, że to może być przyczyną problemu.

Jednym ze sposobów poproszenia Gita o utworzenie go jest poproszenie o edycję. Spowoduje to wymuszenie utworzenia pliku.

git config --global --edit

Jeśli monitorujesz folder domowy użytkownika po wydaniu tego polecenia, zobaczysz magicznie plik .gitconfig.

Gdzie jest przechowywana konfiguracja git?

Oto krótkie podsumowanie nazwy i lokalizacji plików konfiguracyjnych powiązanych z trzema zakresami Git, a mianowicie systemowym , globalnym i lokalnym :

  • Konfiguracja System Git: Plik o nazwie gitconfig znajduje się w -git-install-location- / ming <32> / etc
  • Globalna konfiguracja Git: plik o nazwie .gitconfig znajduje się w folderze domowym użytkownika (C: \ Users \ git user)
  • Lokalna konfiguracja Git: Plik o nazwie config w folderze .git lokalnego repozytorium

Oczywiście widzenie to wiara, więc oto obraz przedstawiający każdy plik i każdą lokalizację. Wyciągnąłem obraz z artykułu, który napisałem na ten temat.

Lokalizacje plików konfiguracyjnych Windows Git (TheServerSide.com)

Lokalizacja plików konfiguracyjnych Git

Cameron McKenzie
źródło
1
jest czwarte miejsce zwane konfiguracją przenośną: tutaj wymieniają 4 miejsca; Git dla Windows obsługuje cztery poziomy konfiguracji. Na najniższym poziomie znajdują się ustawienia konfiguracyjne specyficzne dla maszyny, znane jako „przenośne” i żyją „% ProgramData% \ Git \ config”
Badr Elmers
1
Umysł powalony! Zamierzam zaktualizować artykuł o nowe informacje. Twoje zdrowie!
Cameron McKenzie
4

Korzystam z systemu Windows 7 i używam git jako konfiguracji, postępując zgodnie z instrukcjami na GitHub (rok lub dwa wstecz). Raczej powszechny przypadek użycia, jaki bym pomyślał. Żadna z powyższych odpowiedzi nie pomogła mi i po wielu frustracjach ostatecznie znalazłem mój „prawdziwy” plik gitconfig w następującym katalogu;

C: \ Users \ Bill \ AppData \ Local \ GitHub \ PortableGit_054f2e797ebafd44a30203088cd 3d58663c627ef \ etc

Oczywiście zastąp swoją nazwę użytkownika i przypuszczalnie sufiks po tym, jak PortableGit_ jest unikalnym GUID lub podobnym.

Bill Forster
źródło
1
Jest tak tylko w przypadku korzystania z GitHub dla Windows.
Snake,
3

Myślę, że ważne jest opublikowanie tego cytatu:

Git dla Windows obsługuje cztery poziomy konfiguracji. Na najniższym poziomie znajdują się ustawienia konfiguracyjne specyficzne dla komputera, znane jako „przenośne”, i zamieszkuje „% ProgramData% \ Git \ config”. Jeden poziom priorytetu to specyficzne dla instalacji ustawienia konfiguracji znane jako „system”, które znajdują się w „\ mingw64 \ etc \ gitconfig”. Oba te pliki konfiguracyjne zazwyczaj wymagają podwyższonych uprawnień do modyfikacji.

Zaczynając od specyficznych dla użytkownika wartości zwanych konfiguracją „globalną”, które można znaleźć w „% UserProfile% .gitconfig”, znajdujemy pliki konfiguracyjne „edytowalne przez użytkownika”. Ustawienia konfiguracji o najwyższym priorytecie znajdują się w konfiguracji „lokalnej”, którą zwykle można znaleźć na stronie „.git \ config”.

Widzimy, że zalecenie na blogu związane jest z modyfikacją specyficznych ustawień „systemowych” lub „instalacyjnych”, co jest w porządku, ale użytkownicy powinni oczekiwać, że inne instalacje Gita nie wchłoną tych ustawień. Jeśli chcesz ustawić ustawienia dla całego komputera, użyj pliku konfiguracyjnego „przenośnego”, w przeciwnym razie wybierz pliki konfiguracyjne „globalne” lub „lokalne”.

Mam nadzieję, że ludzie uznają te informacje za przydatne.

źródło

Badr Elmers
źródło
3

Jak zauważył @MatrixFrog w swoim komentarzu , jeśli celem jest edycja konfiguracji, możesz uruchomić:

git config --global --edit

To polecenie otworzy plik konfiguracyjny (w tym przypadku ten --global) w wybranym edytorze i czeka na zamknięcie pliku (tak jak podczas git rebase -i).

Dmitrij Parzhitsky
źródło
Można to wykorzystać, aby dowiedzieć się, gdzie globalna .gitconfigznajduje. - tak długo, jak redaktor mówi, co katalogu plik jest umieszczony w Można również korzystać z innych przełączników ( --system, --localetc.), aby znaleźć i edytować inne .gitconfiglokalizacje. PS -ejest taki sam jak--edit
LightCC
1

Odinstaluj Msysgit i zainstaluj Cygwin + Git. Wtedy pojawi się globalny „.gitconfig”: C: \ cygwin (64) \ home \ [nazwa_użytkownika] \. Gitconfig.

Teraz nie musisz się martwić o zmienną środowiskową, która może być używana przez inne programy. Na przykład moja zmienna środowiskowa skierowała mnie do zmapowanego dysku w moim środowisku domeny pracy systemu Windows. Nie chcę, aby mój globalny plik .gitconfig znajdował się na moim zmapowanym dysku „domowym”. Nie wiem także, co może się stać z innymi aplikacjami, które mogą polegać na tej zmiennej środowiskowej systemu Windows. Podział operacji może z jakiegoś powodu wymagać ustawienia zmiennej środowiskowej na mapowany dysk.

Nie musisz się też martwić, że Mysysgit zastąpi ustawienia konfiguracji „profilu”, jeśli określisz określoną ścieżkę do globalnego „.gitconfig”, używając tej metody.

Ogólnie rzecz biorąc, oszczędzaj siebie i używaj powłoki cygwin bash w systemie Windows i bądź szczęśliwszy

skuteczny
źródło
1

Miałem podobny problem; problem polegał na tym, że .gitconfigplik został zlokalizowany

C:\Users\MyLogin\.gitconfig\

(w systemie Windows 7)

Innymi słowy, plik został umieszczony w C:\Users\MyLogin\.gitconfig\.gitconfig, zamiast w C:\Users\MyLogin\.gitconfig(gdzie Git szukał plików).

rolandog
źródło
1

.gitconfig Lokalizacja pliku

testowanie systemu macOS OK

światowy

# global config
$ cd ~/.gitconfig

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

lokalny

# local config
$ cd .git/config

# view local config
$ git config -l

może premia dla ciebie :Vimlub VSCodeedycja git config


# 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
źródło
0

Zainstalowałem Git w: C:\Users\_myuserfolder_\AppData\Local\Programs\Git

KikeSP
źródło