Як показати мою глобальну конфігурацію Git?


1076

Я хотів би показати всі налаштовані розділи Git.

Я лише знайшов git config --get core.editor, і я хотів би вивести все, що налаштовано в усьому світі, не лише налаштований редактор за замовчуванням.


3
Що поганого у перегляді .gitconfig?
Грак

1
Зауважте, що незабаром (Q3 / Q4 2015) ви отримаєте з git 2.6 можливість --name-onlyперелічити лише конфігураційні клавіші без їх значень. Дивіться мою відповідь нижче
VonC


5
Це повинно бути git config --global --listпояснено глибше тут
19

Відповіді:


1720

Ви можете використовувати:

git config --list

або подивіться на свій ~/.gitconfigфайл. Локальна конфігурація буде у вашому сховищі.git/config файлі .

Використання:

git config --list --show-origin

щоб побачити, де визначено це налаштування (глобальне, користувацьке, репо тощо)


24
Дякую, я підтримав вас обох. Я хотів би знати git config --listкоманду , тому що я можу дивитися на ефективної конфігурації в сховище , і я можу відрізнятися локальної, глобальної та конфігурації системи з відповідним параметром ( --global, --local, --system). Я прийму вашу відповідь, як тільки зможу, тому що ви були на кілька секунд швидше :)
wullxz

2
Будьте уважні, є багато потенційних джерел для налаштування git. Перегляд файлу дає лише частину. @ відповідь linquize насправді правильна.
фонбранд

2
@vonbrand: - список еквівалентний -l.
Камерон Скіннер

9
Скорочення (як -l) корисні, коли ви стаєте користувачем живлення та використовуєте функцію досить часто, щоб фактично отримати прибуток від набору менше символів. Мені легше знайти і запам'ятати довгий --listваріант. Для менш очевидних скорочень мені часто доводиться перевіряти, що вони означають, тому я віддаю перевагу довгим іменам. Вони ще простіші, із завершенням команд, коли вам не потрібно вводити всі символи, але все одно бачите цілу назву параметра.
Кшиштоф Яблонський

1
Що робити, якщо git config --listнічого не друкує?
Matej J

247

Найкоротший,

git config -l

показує всі успадковані значення з: системного, глобального та локального


13
Чи відрізняється це від git config --list , або це лише коротший спосіб написати?
Magnilex

8
@Magnilex - це просто коротший спосіб написати це
LemenDrop

3
Конфігураційні файли можуть не завжди показувати всі успадковані конфігурації, але git config -lпоказуватимуть все. Врятувало мене, тому що git для Windows встановлюється autocrlfпід час встановлення, і його немає в жодному файлі конфігу, який я можу знайти.
генеорама

так, також є C: \ ProgramData \ Git \ config файл - я думаю, це глобальний або системний файл git config
Alex

129

Як редагувати глобальну конфігурацію Git?

Коротка відповідь: git config --edit --global


Щоб зрозуміти конфігурацію Git, ви повинні знати, що:

Змінні конфігурації Git можуть зберігатися на трьох різних рівнях. Кожен рівень переосмислює значення на попередньому рівні.

1. Системний рівень (застосовується до кожного користувача в системі та всіх їх сховищ)

  • для перегляду, git config --list --system(можливо, знадобиться sudo)
  • встановити, git config --system color.ui true
  • для редагування файлу конфігурації системи, git config --edit --system

2. Глобальний рівень (цінності, специфічні особисто для вас, користувача).

  • розглядати, git config --list --global
  • встановити, git config --global user.name xyz
  • для редагування глобального конфігураційного файлу, git config --edit --global

3. Рівень сховища (специфічний для цього одного сховища)

  • розглядати, git config --list --local
  • встановити, git config --local core.ignorecase true( --localнеобов’язково)
  • для редагування конфігураційного файлу сховища git config --edit --local( --localнеобов’язково)

Як переглянути всі налаштування?

  • Запустити git config --list, показуючи систему , глобальну та (якщо всередині сховища) локальні конфігурації
  • Виконати git config --list --show-origin, також показує початковий файл кожного елемента конфігурації

Як прочитати одну конкретну конфігурацію?

  • Скажіть, git config user.nameщоб отримати user.name, наприклад.
  • Ви також можете задати параметри --system, --global,--local щоб прочитати це значення на певному рівні.

Довідка: 1.6 Початок роботи - налаштування Git вперше


1
git config --listпоказати все глобальне, системне та локальне? мені потрібно підтвердження :)
Аді Прасетьо

2
просто додати, де знаходяться конфігураційні файли: Система: C: \ ProgramData \ Git \ config (у windows). Global: C: \ Users \ user \ .gitconfig (Windows) ~ / .gitconfig (Linux) Місцевий: project-repo / .git / config
Алекс

@AdiPrasetyo Так. Ви можете запустити, git config --list --show-originщоб дізнатися походження кожного елемента конфігурації.
kgf3JfUtW

109
git config --list

це один шлях. Я зазвичай просто відкриваюся, .gitconfigхоча.


2
Ви мали намір ~/.gitconfigчи один із інших файлів, згаданих у розділі ФАЙЛИ git help config?
чвар

1
@chwarr - Вибачте, я не підкреслюю. Я "мав намір"?
Грак

1
Я думаю, ти мав на увазі сказати "Я зазвичай просто відкриваюсь ~/.gitconfig", оскільки git не шукає .gitconfigу поточному каталозі, незалежно від того, де ти знаходишся. ( .gitconfigі ~/.gitconfigназивають різні файли [ зазвичай ].) Інші файли, згадані в, git help configмають різні назви файлів, отже, припущення.
чвар

32

Ви також можете зателефонувати, git config -eщоб відкрити файл конфігурації у своєму редакторі безпосередньо. Файл конфігурації Git набагато легше читається, ніж -lвихідний, тому я завжди прагну використовувати-e прапор.

Отже, підсумовуючи:

git config -l  # List Git configuration settings (same as --list)
git config -e  # Opens Git configuration in the default editor (same as --edit)
  • Без параметрів він взаємодіє з локальним .git/config.
  • З --globalним взаємодіє с ~/.gitconfig.
  • І з --systemнею взаємодіє $(prefix)/etc/gitconfig.

(Я дійсно не міг знайти, що $(prefix)означає, але це, здається, за замовчуванням $HOME.)



11

Git 2.6 (вересень / жовтень 2015 р.) Додасть опцію --name-onlyдля спрощення виводу git config -l:

Див. Комісію a92330d , фіксування f225987 , фіксування 9f1429d (20 серпня 2015 р.) Jeff King ( peff) .
Див. Команду "ebca2d4" (20 серпня 2015 р.) Та " виконувати 905f203" , виконувати "578625f" (10 серпня 2015 р.) SZEDER Gábor ( szeder) .
(Об’єднав Хуніо С Хамано - gitster- у комітеті fc9dfda , 31 серпня 2015 р.)

config: Додати --name-onlyопцію " " для переліку лише імен змінних

' git config' може показувати лише параметри або пари іменних значень, тому якщо сценарію оболонки потрібні імена встановлених змінних конфігурацій, він повинен запускатися ' git config --list' або ' --get-regexp' і аналізувати вихід, щоб відокремити імена змінних конфігурацій від їх значень.
Однак такий аналіз не може впоратися з багаторядковими значеннями.

Хоча " git config" може створити нульовий термін для безпечного розбору нового рядка, це не корисно в такому випадку, оскільки оболонки не можуть впоратися з нульовими символами.

Навіть наш власний сценарій завершення башти страждає від цих питань.

Допоможіть скрипту завершення та скриптам оболонки взагалі, ввівши --name-onlyопцію " " для зміни результатів " --list" та " --get-regexp", щоб перелічити лише імена конфігураційних змінних, тому їм не доведеться виконувати обробку пошти, схильну до помилок більше не відокремлюйте імена змінних від їх значень.


10

Важливо git config:

git configмає --local, --globalі --systemрівні та відповідні файли.

Таким чином , ви можете використовувати git config --local, git config --globalіgit config --system .

За замовчуванням git configбуде записано на локальний рівень, якщо не буде пропущено жодної опції конфігурації. Локальні значення конфігурації зберігаються у файлі, який можна знайти в каталозі .git сховища:.git/config

Конфігурація глобального рівня залежить від користувача, тобто застосовується до користувача операційної системи. Загальні значення конфігурації зберігаються у файлі, який знаходиться в домашній директорії користувача. ~/.gitconfigна системах Unix та C:\Users\<username>\.gitconfigWindows.

Конфігурація на рівні системи застосовується на всій машині. Це охоплює всіх користувачів операційної системи та всіх сховищ. Файл конфігурації системного рівня живе у gitconfigфайлі поза кореневим шляхом системи. $ (префікс) / etc / gitconfig в системах Linux. У Windows цей файл можна знайти в C:\ProgramData\Git\config.

Тож ваш варіант - знайти цей глобальний .gitconfigфайл і відредагувати його.

Або ви можете використовувати git config --global --list.

Це саме те, що вам потрібно.

Введіть тут опис зображення


7

Якщо ви просто хочете перерахувати одну частину конфігурації Git, таку як псевдонім , core , віддалений тощо, ви можете просто передати результат через grep. Щось на зразок:

git config --global -l | grep core

4

У системах на базі Linux ви можете переглядати / редагувати файл конфігурації

vi/vim/nano .git/config

Переконайтеся, що ви знаходитесь у папці Git init.

Якщо ви хочете працювати --global config, це так

vi/vim/nano .gitconfig

on / home / userName

Це має допомогти з редагуванням: https://help.github.com/categories/setup/


3

Щоб знайти всі конфігурації, просто напишіть цю команду:

git config --list

У моїй місцевій команді я запускаю цю команду.

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

Команда git config - це зручна функція, яка використовується для встановлення значень конфігурації Git на глобальному або локальному рівні проекту. Ці рівні конфігурації відповідають текстовим файлам .gitconfig. Детальніше читайте тут: atlassian.com/git/tutorials/setting-up-a-repository/git-config
infomasud

Чудово, ви можете додати це до своєї відповіді?
РаменШеф

1

Оскільки Git 2.26.0 , ви можете використовувати --show-scopeваріант:

git config --list --show-scope

Приклад виводу:

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

Його можна поєднувати з

  • --localдля конфігурації проекту, --globalдля конфігурації користувача, --systemдля конфігурації всіх користувачів
  • --show-origin щоб показати точне розташування файлу конфігурації
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.