Jak mogę wyświetlić moją globalną konfigurację Git?

1076

Chciałbym pokazać wszystkie skonfigurowane sekcje Git.

Tylko znalazłem git config --get core.editori chciałbym wypisać wszystko, co jest skonfigurowane globalnie, nie tylko skonfigurowany domyślny edytor.

wullxz
źródło
3
Co jest złego, patrząc na .gitconfig?
Rook
1
Zauważ, że wkrótce (g3 / 4k 2015) będziesz mieć opcję git 2.6 --name-only, aby wyświetlić tylko klucze konfiguracji, bez ich wartości. Zobacz moją odpowiedź poniżej
VonC
41
$ git config --list Sprawdzanie ustawień
TarranJones
5
Powinno to być git config --global --listwyjaśnione głębiej tutaj
prosti

Odpowiedzi:

1720

Możesz użyć:

git config --list

lub spójrz na swój ~/.gitconfigplik. Lokalna konfiguracja będzie w .git/configpliku twojego repozytorium .

Posługiwać się:

git config --list --show-origin

aby zobaczyć, gdzie to ustawienie jest zdefiniowane (globalne, użytkownika, repozytorium itp.)

Cameron Skinner
źródło
24
Dzięki, głosowałem was obu. Chciałem poznać git config --listpolecenia bo mogę patrzeć na skuteczną config w repozytorium i mogę się różnić lokalnej, globalnej i Konfiguracja systemu z odpowiednim parametrem ( --global, --local, --system). Przyjmę twoją odpowiedź, gdy tylko będę mógł, bo byłeś kilka sekund szybszy :)
wullxz
2
Uważaj, istnieje wiele potencjalnych źródeł konfiguracji git. Spojrzenie na plik daje tylko część. Odpowiedź @ linquize jest w rzeczywistości prawidłowa.
vonbrand
2
@vonbrand: --list jest równoważne -l.
Cameron Skinner
9
Stenografia (jak -l) przydaje się, gdy stajesz się zaawansowanym użytkownikiem i używasz tej funkcji wystarczająco często, aby faktycznie skorzystać z mniejszej liczby znaków. Łatwiej jest mi znaleźć i zapamiętać długą --listopcję. W przypadku mniej oczywistych skrótów często muszę sprawdzać, co oznaczają, więc wolę długie nazwiska. Są jeszcze łatwiejsze, z zakończeniem poleceń, gdy tak naprawdę nie musisz wpisywać wszystkich znaków, ale nadal widzisz całą nazwę opcji.
Krzysztof Jabłoński
1
Co jeśli git config --listnic nie drukuje?
Matej J
247

Najkrótszy,

git config -l

pokazuje wszystkie odziedziczone wartości z: systemowego, globalnego i lokalnego

linquize
źródło
13
Czy różni się to od git config --list , czy jest to tylko krótszy sposób na napisanie go?
Magnilex,
8
@Magnilex to tylko krótszy sposób na napisanie
LemenDrop,
3
Pliki konfiguracyjne nie zawsze pokazują wszystkie odziedziczone konfiguracje, ale git config -lpokazują wszystko. Zapisałem mnie, ponieważ git dla zestawów Windows autocrlfpodczas instalacji, i nie ma go w żadnym pliku konfiguracyjnym, który mogę znaleźć.
genorama
tak, jest też plik C: \ ProgramData \ Git \ config - Myślę, że to globalny lub systemowy plik konfiguracyjny git
Alex
129

Jak mogę edytować moją globalną konfigurację Git?

Krótka odpowiedź: git config --edit --global


Aby zrozumieć konfigurację Git, powinieneś wiedzieć, że:

Zmienne konfiguracyjne Git mogą być przechowywane na trzech różnych poziomach. Każdy poziom zastępuje wartości z poprzedniego poziomu.

1. Poziom systemu (dotyczy każdego użytkownika w systemie i wszystkich jego repozytoriów)

  • do przeglądania git config --list --system(może wymagać sudo)
  • ustawić, git config --system color.ui true
  • aby edytować plik konfiguracji systemu, git config --edit --system

2. Poziom globalny (wartości specyficzne dla ciebie, użytkownika).

  • obejrzeć, git config --list --global
  • ustawić, git config --global user.name xyz
  • aby edytować globalny plik konfiguracyjny, git config --edit --global

3. Poziom repozytorium (specyficzny dla tego pojedynczego repozytorium)

  • obejrzeć, git config --list --local
  • ustawić git config --local core.ignorecase true( --localopcjonalnie)
  • aby edytować plik konfiguracyjny repozytorium, git config --edit --local( --localopcjonalnie)

Jak wyświetlić wszystkie ustawienia?

  • Uruchom git config --list, pokazując systemowe , globalne i (jeśli w repozytorium) lokalne konfiguracje
  • Uruchom git config --list --show-origin, pokazuje również plik źródłowy każdego elementu konfiguracji

Jak odczytać jedną konkretną konfigurację?

  • Uruchom na przykład, git config user.nameaby uzyskać user.name.
  • Można także określić opcje --system, --global, --localaby przeczytać tę wartość na określonym poziomie.

Odniesienia: 1.6 Pierwsze kroki - Konfiguracja Git po raz pierwszy

kgf3JfUtW
źródło
1
git config --listpokazać wszystkie globalne, systemowe i lokalne? Potrzebuję potwierdzenia :)
Adi Prasetyo,
2
aby dodać gdzie znajdują się pliki konfiguracyjne: System: C: \ ProgramData \ Git \ config (w systemie Windows). Globalny: C: \ Users \ user \ .gitconfig (Windows) ~ / .gitconfig (Linux) Lokalny: project-repo / .git / config
Alex
@AdiPrasetyo Tak. Możesz uruchomić, git config --list --show-originaby znaleźć pochodzenie każdego elementu konfiguracji.
kgf3JfUtW,
109
git config --list

jest jedna droga. Zazwyczaj jednak po prostu się otwieram .gitconfig.

Wieża
źródło
2
Czy zamierzałeś ~/.gitconfiglub jeden z innych plików wymienionych w sekcji PLIKI git help config?
chwarr
1
@chwarr - Przepraszam, nie rozumiem. Czy „zamierzałem”?
Gawron
1
Myślę, że chciałeś powiedzieć „Zwykle po prostu się otwieram ~/.gitconfig”, ponieważ git nie szuka .gitconfigw bieżącym katalogu, niezależnie od tego, gdzie jesteś. ( .gitconfigi ~/.gitconfignazywaj różne pliki [ zwykle ].) Inne pliki wymienione w git help configmają różne nazwy plików, stąd założenie.
chwarr
32

Możesz także zadzwonić git config -e aby bezpośrednio otworzyć plik konfiguracyjny w edytorze. Plik konfiguracyjny Git jest znacznie bardziej czytelny niż dane -lwyjściowe, więc zawsze używam -eflagi.

Podsumowując:

git config -l  # List Git configuration settings (same as --list)
git config -e  # Opens Git configuration in the default editor (same as --edit)
  • Bez parametrów współdziała z lokalnym .git/config.
  • Z --global tym współdziała ~/.gitconfig.
  • I z --system tym współdziała $(prefix)/etc/gitconfig.

(Naprawdę nie mogłem znaleźć, co to $(prefix)znaczy, ale wydaje się, że domyślnie $HOME.)

leondepeon
źródło
13

Możesz także użyć cat ~/.gitconfig.

Ankit K Gupta
źródło
11

Git 2.6 (wrzesień / październik 2015) doda opcję --name-onlyuproszczenia danych wyjściowych git config -l:

Zobacz commit a92330d , commit f225987 , commit 9f1429d (20 sierpnia 2015) autor: Jeff King ( peff) .
Zobacz zatwierdzenie ebca2d4 (20 sierpnia 2015 r.) I zatwierdzenie 905f203 , zatwierdzenie 578625f (10 sierpnia 2015 r.) Autor: SZEDER Gábor ( szeder) .
(Połączone przez Junio ​​C Hamano - gitster- w commit fc9dfda , 31 sierpnia 2015)

config: Dodaj '--name-only opcję ”, aby wyświetlić tylko nazwy zmiennych

git config” może wyświetlać tylko wartości lub pary nazwa-wartość, więc jeśli skrypt powłoki potrzebuje nazw ustawionych zmiennych konfiguracyjnych, musi uruchomić „ git config --list” lub „ --get-regexp” i przeanalizować dane wyjściowe, aby oddzielić nazwy zmiennych konfiguracyjnych od ich wartości.
Jednak takie analizowanie nie jest w stanie poradzić sobie z wartościami wieloliniowymi.

Chociaż „ git config” może generować wynik zakończony zerem dla parsowania bezpiecznego dla nowej linii, to nie ma sensu w takim przypadku, ponieważ powłoki nie radzą sobie ze znakami zerowymi.

Nawet nasz własny skrypt kończący bash cierpi na te problemy.

Pomóż skryptowi zakończenia i ogólnie skryptom powłoki, wprowadzając --name-onlyopcję „ ” modyfikującą dane wyjściowe „ --list” i „ --get-regexp”, aby wyświetlać tylko nazwy zmiennych konfiguracyjnych, aby nie musiały wykonywać podatnego na błędy przetwarzania końcowego oddzielić nazwy zmiennych od ich wartości.

VonC
źródło
10

Jedną ważną rzecz dotyczącą git config:

git configma --local, --globala --systempoziomy i odpowiadające im pliki.

Więc można używać git config --local, git config --globali git config --system.

Domyślnie git configzapisuje na poziomie lokalnym , jeśli nie zostanie przekazana żadna opcja konfiguracji. Lokalne wartości konfiguracyjne są przechowywane w pliku, który można znaleźć w katalogu .git repozytorium:.git/config

Konfiguracja na poziomie globalnym jest specyficzna dla użytkownika, co oznacza, że ​​jest stosowana do użytkownika systemu operacyjnego. Globalne wartości konfiguracyjne są przechowywane w pliku znajdującym się w katalogu osobistym użytkownika. ~/.gitconfigw systemach Unix i C:\Users\<username>\.gitconfigWindows.

Konfiguracja na poziomie systemu jest stosowana na całym komputerze. Dotyczy to wszystkich użytkowników systemu operacyjnego i wszystkich repozytoriów. Plik konfiguracyjny na poziomie systemu znajduje się w gitconfigpliku poza ścieżką systemową. $ (przedrostek) / etc / gitconfig w systemach Linux. W systemie Windows ten plik można znaleźć w C:\ProgramData\Git\config.

Więc twoją opcją jest znalezienie tego globalnego .gitconfig pliku i jego edycja.

Lub możesz użyć git config --global --list.

Właśnie takiej linii potrzebujesz.

Wpisz opis zdjęcia tutaj

prosti
źródło
7

Jeśli chcesz tylko wymienić jedną część konfiguracji Gita, taką jak alias , rdzeń , zdalny itp., Możesz po prostu przesłać wynik przez grep. Coś jak:

git config --global -l | grep core
dleal
źródło
4

W systemach Linux możesz przeglądać / edytować plik konfiguracyjny przez

vi/vim/nano .git/config

Upewnij się, że jesteś w folderze inicjującym Git.

Jeśli chcesz z tym pracować --global config, to jest to

vi/vim/nano .gitconfig

na / home / nazwa_użytkownika

To powinno pomóc w edycji: https://help.github.com/categories/setup/

Daniel Perník
źródło
3

Aby znaleźć wszystkie konfiguracje, wystarczy napisać to polecenie:

git config --list

W moim lokalnym uruchamiam to polecenie.

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
źródło
Polecenie git config to funkcja wygodna, która służy do ustawiania wartości konfiguracji Git na poziomie projektu globalnego lub lokalnego. Te poziomy konfiguracji odpowiadają plikom tekstowym .gitconfig. Czytaj więcej tutaj: atlassian.com/git/tutorials/setting-up-a-repository/git-config
infomasud
Świetnie, czy możesz dodać to do swojej odpowiedzi?
RamenChef,
1

Od wersji Git 2.26.0 możesz użyć --show-scopeopcji:

git config --list --show-scope

Przykładowe dane wyjściowe:

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

Można to połączyć z

  • --localdla konfiguracji projektu, --globaldla konfiguracji użytkownika, --systemdla konfiguracji wszystkich użytkowników
  • --show-origin aby pokazać dokładną lokalizację pliku konfiguracyjnego
ford04
źródło