Сравнение глобальной и локальной конфигурации
Git имеет разные уровни конфигурации. Мы уже рассмотрели глобальную (--global
) конфигурацию, которая применяется ко всем вашим репозиториям. Также существует локальная (--local
) конфигурация, которая применяется только к конкретному репозиторию, в котором вы находитесь в данный момент. Локальные настройки конфигурации переопределяют глобальные настройки для этого конкретного репозитория.
Чтобы посмотреть локальную конфигурацию репозитория, вы должны находиться внутри Git-репозитория и выполнить команду git config --local --list
. Поскольку в этой лабораторной работе мы еще не создали новый репозиторий, выполнение этой команды сейчас приведет к ошибке.
Сначала создадим новую директорию и инициализируем в ней Git-репозиторий, как вы делали в разделе "Ваша первая лабораторная работа по Git":
mkdir my-local-repo
cd my-local-repo
git init
Вы должны увидеть сообщение об инициализации:
Initialized empty Git repository in /home/labex/project/my-local-repo/.git/
Теперь, когда вы находитесь внутри директории my-local-repo
, которая является Git-репозиторием, вы можете проверить его локальную конфигурацию:
git config --local --list
Вероятно, вы не увидите никакого вывода или увидите очень минимальный вывод, так как для этого конкретного репозитория еще не были установлены локальные настройки конфигурации.
Теперь установим локальную настройку, которая отличается от глобальной. Например, установим другое значение user.name
для этого конкретного репозитория:
git config --local user.name "Local User"
Эта команда устанавливает значение user.name
конкретно для репозитория my-local-repo
.
Теперь снова выведем локальную конфигурацию:
git config --local --list
Теперь вы должны увидеть локальное значение user.name
:
user.name=Local User
Наконец, посмотрим, что произойдет, если вы запросите значение user.name
без указания флагов --global
или --local
. Git будет искать настройку в следующем порядке: сначала локальную, затем глобальную, а затем системную. Первая найденная настройка будет использована.
Выполните следующую команду, находясь все еще внутри директории my-local-repo
:
git config user.name
Вы должны увидеть локальное имя пользователя, так как локальная конфигурация переопределяет глобальную:
Local User
Теперь вернитесь в директорию ~/project
(вне директории my-local-repo
):
cd ~/project
И снова выполните ту же команду:
git config user.name
На этот раз, так как вы не находитесь внутри репозитория с локальной конфигурацией, Git будет использовать глобальную конфигурацию:
Jane Doe
Это демонстрирует, как локальные настройки конфигурации имеют приоритет над глобальными, позволяя вам иметь специфические настройки для отдельных проектов, сохраняя при этом общие настройки для всех остальных.