Чем отличается локальный git конфиг от глобального


гит конфиг


Git содержит утилиту git config, с помощью которой можно просматривать и настраивать параметры, для контроля всех аспектов работы Git. Эти настройки могут быть сохранены в трёх конфигах: системном, глобальном и локальном. Так в чем отличие локального git конфига от глобального.

1) Системный конфиг в файле [path]/etc/gitconfig содержит значения, общие для всех пользователей системы и для всех их репозиториев. Если при запуске git config указать параметр --system, то параметры будут читаться и сохраняться именно в этот файл. Так как этот файл является системным, то вам потребуются права суперпользователя для внесения изменений в него.

2) Глобальный конфиг в файле ~/.gitconfig или ~/.config/git/config хранит настройки конкретного пользователя. Этот файл используется при указании параметра --global и применяется ко всем репозиториям, с которыми вы работаете в текущей системе.

3) Локальный конфиг в файле config в каталоге Git (т. е. .git/config) репозитория, который вы используете в данный момент, хранит настройки конкретного репозитория. Вы можете заставить Git читать и писать в этот файл с помощью параметра --local, но на самом деле это значение по умолчанию (если вы не укажите с каким конфигом работать:system, global, local, то будет использоваться local). Поэтому вам нужно находиться где-то в репозитории Git, чтобы эта опция работала правильно.

Важно знать, что конфиг на каждом следующем уровне подменяют настройки из предыдущих уровней, то есть значения в локальном конфиге перекрывают соответствующие значения в глобальном конфиге.

Чтобы посмотреть все установленные настройки и узнать в каком именно конфиге они заданы, используйте команду:  $ git config --list --show-origin

Еще раз другими словами об отличии конфигов в гит. Git использует подход иерархической конфигурации, в котором настройки из более широкой области наследуются, в случае если они не переопределяются.

Все файлы конфигурации имеют одинаковый синтаксис, но разную область видимости. Что предлагает большую гибкость.

На верхнем уровне находится системная конфигурация (для всех пользователей). Затем глобальная конфигурация (которая может переопределить системные настройки на настройки конкретного пользователя). И, наконец, есть локальный конфиг (для конкретного репозитория), который может переопределить настройки всех вышеперечисленных конфигов и тем самым установив специфичные для конкретного репозитория опции.

Комментариев нет: