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.


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.)


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


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


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.


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.)



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.


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


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

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/


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
user.email=infomasud@gmail.com
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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.