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

1077

Я хотел бы показать все настроенные разделы Git.

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

wullxz
источник
3
Что не так с просмотром .gitconfig?
Ладья
1
Обратите внимание, что скоро (Q3 / Q4 2015) в git 2.6 появится возможность --name-onlyперечислять только ключи конфигурации без их значений. Смотрите мой ответ ниже
VonC
41
$ git config --list Проверка ваших настроек
TarranJones
5
Это должно быть, git config --global --listкак объяснено глубже здесь
prosti

Ответы:

1726

Ты можешь использовать:

git config --list

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

Использование:

git config --list --show-origin

чтобы увидеть, где определен этот параметр (глобальный, пользовательский, репо и т. д.)

Кэмерон Скиннер
источник
24
Спасибо, я проголосовал за вас обоих. Я хотел бы знать git config --listкоманду , потому что я могу смотреть на эффективной конфигурации в хранилище , и я могу отличаться локальной, глобальной и конфигурации системы с соответствующим параметром ( --global, --local, --system). Я приму ваш ответ, как только смогу, потому что вы были на несколько секунд быстрее :)
wullxz
2
Будьте осторожны, есть много потенциальных источников для конфигурации git. Просмотр файла дает только часть. Ответ @ linquize на самом деле правильный.
vonbrand
2
@vonbrand: --list эквивалентен -l.
Кэмерон Скиннер
9
Сокращения (например -l) могут пригодиться, когда вы станете опытным пользователем и будете использовать эту функцию достаточно часто, чтобы фактически получить прибыль от ввода меньшего количества символов. Мне легче найти и запомнить длинный --listвариант. Для менее очевидных сокращений мне часто приходится проверять, что они обозначают, поэтому я предпочитаю длинные имена. Они даже проще, с завершением команды, когда вам не нужно вводить все символы, но вы видите полное имя опции.
Кшиштоф Яблонский
1
Что делать, если git config --listничего не печатает?
Matej J
247

Кратчайший,

git config -l

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

linquize
источник
13
Это отличается от git config --list , или это просто более короткий способ написать это?
Magnilex
8
@Magnilex это просто более короткий способ написать это
LemenDrop
3
Файлы конфигурации могут не всегда отображать все унаследованные конфигурации, но git config -lбудут отображать все. Спас меня, потому что git для windows устанавливает autocrlfпри установке, и его нет ни в одном конфигурационном файле, который я могу найти.
Geneorama
да, есть также файл C: \ ProgramData \ Git \ config - я предполагаю, что это глобальный или системный конфигурационный файл git
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

kgf3JfUtW
источник
1
git config --listпоказать все глобальное, системное и локальное?
Мне
2
просто чтобы добавить, где находятся файлы конфигурации: System: C: \ ProgramData \ Git \ config (в windows). Global: C: \ Users \ Пользователь \ .gitconfig (Windows) ~ / .gitconfig (Linux) Local: проект-репо / .git / конфиг
Alex
@AdiPrasetyo Да. Вы можете запустить, git config --list --show-originчтобы узнать происхождение каждого элемента конфигурации.
kgf3JfUtW
109
git config --list

это один из способов пойти. Я обычно просто открываюсь, .gitconfigхотя.

ладья
источник
2
Вы намеревались ~/.gitconfigили один из других файлов, упомянутых в разделе FILES git help config?
chwarr
1
@chwarr - Извините, я не понимаю. Я "собирался"?
Ладья
1
Я думаю, что вы хотели сказать «я обычно просто открываюсь ~/.gitconfig», поскольку git не ищет .gitconfigв текущем каталоге, независимо от того, где вы находитесь. ( .gitconfigи ~/.gitconfigназывают разные файлы [ обычно ].) Другие файлы, упомянутые в, git help configимеют разные имена файлов, отсюда и предположение.
chwarr
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.)

leondepeon
источник
13

Вы также можете использовать cat ~/.gitconfig.

Анкит К Гупта
источник
11

Git 2.6 (сентябрь / октябрь 2015 г.) добавит возможность --name-onlyупростить вывод git config -l:

Смотрите коммит a92330d , коммит f225987 , коммит 9f1429d (20 августа 2015 г.) Джеффа Кинга ( peff) .
См. Коммит ebca2d4 (20 августа 2015 г.) и коммит 905f203 , коммит 578625f (10 августа 2015 г.) от SZEDER Gábor ( szeder) .
(Слиты Junio C Hamano - gitster- в фиксации fc9dfda , 31 августа 2015)

config: добавить --name-onlyопцию ' ' для отображения только имен переменных

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

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

Даже наш собственный скрипт завершения bash страдает от этих проблем.

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

VonC
источник
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>\.gitconfigв Windows.

Конфигурация на уровне системы применяется ко всей машине. Это касается всех пользователей операционной системы и всех репозиториев. Файл конфигурации системного уровня находится в gitconfigфайле вне корневого пути системы. $ (префикс) / etc / gitconfig в системах Linux. В Windows этот файл можно найти в C:\ProgramData\Git\config.

Поэтому вы можете найти этот глобальный .gitconfigфайл и отредактировать его.

Или вы можете использовать git config --global --list.

Это именно та линия, которая вам нужна.

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

прости
источник
7

Если вы просто хотите перечислить одну часть конфигурации Git, такую ​​как псевдоним , core , remote и т. Д., Вы можете просто передать результат через grep. Что-то вроде:

git config --global -l | grep core
dleal
источник
4

В системах на основе Linux вы можете просматривать / редактировать файл конфигурации

vi/vim/nano .git/config

Убедитесь, что вы находитесь в папке Git init.

Если вы хотите работать --global config, это

vi/vim/nano .gitconfig

на / 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
infomasud
источник
Команда git config - это удобная функция, которая используется для установки значений конфигурации Git на глобальном или локальном уровне проекта. Эти уровни конфигурации соответствуют текстовым файлам .gitconfig. Подробнее читайте здесь: atlassian.com/git/tutorials/setting-up-a-repository/git-config
infomasud
Отлично, вы можете добавить это к своему ответу?
RamenChef
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 чтобы показать точное местоположение файла конфигурации
ford04
источник