Bagaimana cara menunjukkan konfigurasi global Git saya?

1076

Saya ingin menampilkan semua bagian Git yang dikonfigurasi.

Saya hanya menemukan git config --get core.editor, dan saya ingin menampilkan semua yang dikonfigurasi secara global, tidak hanya editor default yang dikonfigurasi.

wullxz
sumber
3
Apa yang salah dengan melihat .gitconfig?
Benteng
1
Perhatikan bahwa Anda akan segera (Q3 / Q4 2015) memiliki opsi git 2.6 --name-only, untuk mendaftar hanya kunci konfigurasi, tanpa nilainya. Lihat jawaban saya di bawah ini
VonC
41
$ git config --list Memeriksa-Your-Settings
TarranJones
5
Seharusnya git config --global --listseperti yang dijelaskan lebih dalam di sini
prosti

Jawaban:

1722

Kamu bisa menggunakan:

git config --list

atau lihat ~/.gitconfigfile Anda . Konfigurasi lokal akan berada di .git/configfile repositori Anda .

Menggunakan:

git config --list --show-origin

untuk melihat di mana pengaturan itu didefinisikan (global, pengguna, repo, dll ...)

Cameron Skinner
sumber
24
Terima kasih, saya membesarkan hati Anda berdua. Aku ingin tahu git config --listperintah karena saya dapat melihat konfigurasi yang efektif dalam repositori dan saya dapat berbeda lokal, global dan sistem konfigurasi dengan parameter yang sesuai ( --global, --local, --system). Saya akan menerima jawaban Anda segera setelah saya dapat karena Anda beberapa detik lebih cepat :)
wullxz
2
Hati-hati, ada banyak sumber potensial untuk konfigurasi git. Melihat file hanya memberikan sebagian. Jawaban @ linquize sebenarnya benar.
vonbrand
2
@vonbrand: --list sama dengan -l.
Cameron Skinner
9
Singkatan (seperti -l) berguna ketika Anda menjadi pengguna yang kuat dan cukup sering menggunakan fitur ini, untuk benar-benar mendapat untung dari mengetik lebih sedikit karakter. Saya merasa lebih mudah untuk menemukan dan mengingat --listopsi yang panjang . Untuk steno yang kurang jelas saya sering harus memeriksa apa yang mereka perjuangkan, jadi saya lebih suka nama yang panjang. Mereka bahkan lebih mudah, dengan perintah selesai, ketika Anda tidak benar-benar harus mengetik semua karakter, tetapi masih melihat nama opsi keseluruhan.
Krzysztof Jabłoński
1
Bagaimana jika git config --listtidak mencetak apa pun?
Matej J
247

Terpendek,

git config -l

menunjukkan semua nilai yang diwarisi dari: sistem, global dan lokal

linquize
sumber
13
Apakah ini berbeda dari git config --list , atau hanya cara yang lebih singkat untuk menulisnya?
Magnilex
8
@Magnilex itu hanya cara yang lebih singkat untuk menulisnya
LemenDrop
3
File konfigurasi mungkin tidak selalu menampilkan semua konfigurasi yang diwarisi, tetapi git config -lakan menampilkan semuanya. Menyelamatkan saya karena git untuk windows menetapkan autocrlfpada instalasi, dan itu tidak ada dalam file konfigurasi yang dapat saya temukan.
geneorama
ya, ada juga file C: \ ProgramData \ Git \ config - Saya kira ini file konfigurasi global atau sistem git
Alex
129

Bagaimana cara saya mengedit konfigurasi global Git saya ?

Jawaban singkat: git config --edit --global


Untuk memahami konfigurasi Git, Anda harus tahu bahwa:

Variabel konfigurasi Git dapat disimpan pada tiga level berbeda. Setiap level mengabaikan nilai pada level sebelumnya.

1. Tingkat sistem (diterapkan pada setiap pengguna pada sistem dan semua repositori mereka)

  • untuk melihat, git config --list --system(mungkin perlu sudo)
  • untuk mengatur, git config --system color.ui true
  • untuk mengedit file konfigurasi sistem, git config --edit --system

2. Tingkat global (nilai-nilai khusus untuk Anda, pengguna).

  • untuk melihat, git config --list --global
  • untuk mengatur, git config --global user.name xyz
  • untuk mengedit file konfigurasi global, git config --edit --global

3. Tingkat repositori (khusus untuk repositori tunggal itu)

  • untuk melihat, git config --list --local
  • untuk mengatur, git config --local core.ignorecase true( --localopsional)
  • untuk mengedit file konfigurasi repositori, git config --edit --local( --localopsional)

Bagaimana cara melihat semua pengaturan?

  • Jalankan git config --list, tampilkan sistem , global , dan (jika di dalam repositori) konfigurasi lokal
  • Jalankan git config --list --show-origin, juga memperlihatkan file asal dari setiap item konfigurasi

Bagaimana cara membaca satu konfigurasi tertentu?

  • Jalankan git config user.nameuntuk mendapatkan user.name, misalnya.
  • Anda juga dapat menentukan pilihan --system, --global, --localuntuk membaca nilai yang pada tingkat tertentu.

Referensi: 1.6 Persiapan - Pengaturan Git Pertama Kali

kgf3JfUtW
sumber
1
git config --listtunjukkan semua global, sistem dan lokal? saya butuh penegasan :)
Adi Prasetyo
2
hanya untuk menambahkan di mana file config berada: Sistem: C: \ ProgramData \ Git \ config (di windows). Global: C: \ Users \ user \ .gitconfig (Windows) ~ / .gitconfig (Linux) Lokal: project-repo / .git / config
Alex
@AdiPrasetyo Ya. Anda dapat berlari git config --list --show-originuntuk mengetahui asal dari setiap item konfigurasi.
kgf3JfUtW
109
git config --list

adalah salah satu cara untuk pergi. Saya biasanya hanya membuka .gitconfig.

Benteng
sumber
2
Apakah Anda bermaksud ~/.gitconfigatau salah satu file lain yang disebutkan di bagian FILES git help config?
chwarr
1
@chwarr - Maaf, saya tidak mengerti. Apakah saya "berniat"?
Benteng
1
Saya pikir Anda bermaksud mengatakan "Saya biasanya hanya membuka saja ~/.gitconfig.", Karena git tidak mencari .gitconfigdi direktori saat ini, terlepas dari di mana Anda berada. ( .gitconfigdan ~/.gitconfigberi nama file yang berbeda [ biasanya ].) File lain yang disebutkan dalam git help configmemiliki nama file yang berbeda, maka anggapannya.
chwarr
32

Anda juga dapat menelepon git config -euntuk membuka file konfigurasi di editor Anda secara langsung. File konfigurasi Git jauh lebih mudah dibaca daripada -loutputnya, jadi saya selalu cenderung menggunakan -eflag.

Jadi untuk meringkas:

git config -l  # List Git configuration settings (same as --list)
git config -e  # Opens Git configuration in the default editor (same as --edit)
  • Tanpa parameter itu berinteraksi dengan lokal .git/config.
  • Dengan --globalitu berinteraksi dengan ~/.gitconfig.
  • Dan dengan --systemitu berinteraksi dengannya $(prefix)/etc/gitconfig.

(Saya benar-benar tidak bisa menemukan apa $(prefix)artinya, tetapi tampaknya default untuk $HOME.)

Leondepeon
sumber
13

Anda juga bisa menggunakan cat ~/.gitconfig.

Ankit K Gupta
sumber
11

Git 2.6 (September / Oktober 2015) akan menambahkan opsi --name-onlyuntuk menyederhanakan output dari agit config -l :

Lihat commit a92330d , commit f225987 , commit 9f1429d (20 Agu 2015) oleh Jeff King ( peff) .
Lihat komit ebca2d4 (20 Agu 2015), dan komit 905f203 , komit 578625f (10 Agu 2015) oleh SZEDER Gábor ( szeder) .
(Digabung oleh Junio ​​C Hamano - gitster- di commit fc9dfda , 31 Agu 2015)

config: tambahkan --name-onlyopsi ' ' untuk mencantumkan hanya nama variabel

' git config' hanya dapat menampilkan nilai atau pasangan nama-nilai, jadi jika skrip shell memerlukan nama-nama variabel set config, ia harus menjalankan ' git config --list' atau ' --get-regexp' dan mem-parsing output untuk memisahkan nama variabel konfigurasi dari nilainya.
Namun, penguraian seperti itu tidak dapat mengatasi nilai multi-line.

Meskipun ' git config' dapat menghasilkan keluaran yang diakhiri null untuk penguraian aman-baris, itu tidak berguna dalam kasus seperti itu, karena shell tidak dapat mengatasi karakter nol.

Bahkan skrip penyelesaian bash kita sendiri menderita masalah ini.

Bantu skrip penyelesaian, dan skrip shell secara umum, dengan memperkenalkan opsi ' --name-only' untuk memodifikasi output dari ' --list' dan ' --get-regexp' untuk mencantumkan hanya nama-nama variabel konfigurasi, sehingga mereka tidak harus melakukan pemrosesan posting rawan kesalahan ke pisahkan nama variabel dari nilainya lagi.

VONC
sumber
10

Satu hal penting tentang git config:

git configmemiliki --local, --globaldan --systemlevel dan file yang sesuai.

Jadi, Anda dapat menggunakan git config --local, git config --globaldangit config --system .

Secara default, git configakan menulis ke tingkat lokal jika tidak ada opsi konfigurasi yang dilewatkan. Nilai konfigurasi lokal disimpan dalam file yang dapat ditemukan di direktori .git repositori:.git/config

Konfigurasi tingkat global adalah khusus pengguna, artinya diterapkan pada pengguna sistem operasi. Nilai konfigurasi global disimpan dalam file yang terletak di direktori home pengguna. ~/.gitconfigpada sistem Unix dan C:\Users\<username>\.gitconfigWindows.

Konfigurasi tingkat sistem diterapkan di seluruh mesin. Ini mencakup semua pengguna pada sistem operasi dan semua repositori. File konfigurasi level sistem hidup dalam gitconfigfile di luar jalur root sistem. $ (awalan) / etc / gitconfig di sistem Linux. Pada Windows file ini dapat ditemukan di C:\ProgramData\Git\config.

Jadi, pilihan Anda adalah menemukan .gitconfigfile global itu dan mengeditnya.

Atau bisa Anda gunakan git config --global --list.

Inilah garis yang Anda butuhkan.

Masukkan deskripsi gambar di sini

prosti
sumber
7

Jika Anda hanya ingin mendaftar satu bagian dari konfigurasi Git, seperti alias , core , remote , dll., Anda bisa mem-pipe hasilnya melalui grep. Sesuatu seperti:

git config --global -l | grep core
lembut
sumber
4

Pada sistem berbasis Linux Anda dapat melihat / mengedit file konfigurasi dengan

vi/vim/nano .git/config

Pastikan Anda berada di dalam folder Git init.

Jika Anda ingin bekerja dengannya --global config, itu

vi/vim/nano .gitconfig

di / home / userName

Ini akan membantu mengedit: https://help.github.com/categories/setup/

Daniel Perník
sumber
3

Untuk menemukan semua konfigurasi, Anda cukup menulis perintah ini:

git config --list

Di lokal saya, saya menjalankan perintah ini.

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
sumber
Perintah git config adalah fungsi kenyamanan yang digunakan untuk mengatur nilai konfigurasi Git pada tingkat proyek global atau lokal. Tingkat konfigurasi ini sesuai dengan file teks .gitconfig. Baca Lebih Lanjut di sini: atlassian.com/git/tutorials/setting-up-a-repository/git-config
infomasud
Hebat, bisakah Anda menambahkan itu ke jawaban Anda?
RamenChef
1

Karena Git 2.26.0 , Anda dapat menggunakan --show-scopeopsi:

git config --list --show-scope

Contoh output:

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

Dapat dikombinasikan dengan

  • --localuntuk konfigurasi proyek, --globaluntuk konfigurasi pengguna, --systemuntuk semua konfigurasi pengguna
  • --show-origin untuk menampilkan lokasi file konfigurasi yang tepat
ford04
sumber