Локальная vs глобальная конфигурация
Тема дорожной карты · Изучи Git
У Git config три области: --system (все пользователи хоста), --global (ваш пользователь, файл ~/.gitconfig) и --local (.git/config текущего репозитория). Локальная конфигурация перекрывает глобальную, глобальная — системную. Этот механизм позволяет настроить Git на уровне системы, пользователя и проекта. Например, личная почта может быть настроена глобально, а рабочая — локально для конкретного репозитория. Для проверки значений конфигурации используйте команды git config --get user.email или git config --list --show-origin, чтобы увидеть, из какого файла берётся каждая настройка. Также существует опция --worktree для отдельных рабочих деревьев.
Как это работает
Локальная и глобальная конфигурации устанавливаются через установку Git (apt install git / dnf install git / brew install git или git-scm.com для Windows). Настройте личные данные (git config --global user.name, user.email), дефолтную ветку (init.defaultBranch main), режим получения (pull.rebase true или pull.ff only), помощник для аутентификации (credential.helper), подпись (commit.gpgsign true с GPG/SSH-ключом). Для перекрытия глобальных настроек в конкретном проекте используйте файл .git/config. Алиасы (alias.co = checkout) помогают экономить время и упрощают работу с Git.
Когда применять
Установите user.email таким образом, чтобы он соответствовал вашему аккаунту на forge (GitHub, GitLab) — это позволит корректно атрибутировать коммиты. Настройка pull.ff only предотвращает появление тихих merge-коммитов при выполнении команды pull. Использование GPG/SSH-подписи необходимо, если команда проверяет подпись каждого коммита. Помощник для аутентификации (credential.helper) позволяет автоматически запрашивать необходимые данные, такие как пароли, без необходимости вводить их каждый раз.
Типичные ошибки
Типичные ошибки при использовании локальной и глобальной конфигурации включают коммиты с неверным email адресом, что может привести к атрибуции коммита некорректному пользователю на forge. Дефолтное значение pull.rebase false может привести к созданию запутанной истории слияний. Если не установлено значение init.defaultBranch main, Git будет использовать старое значение master, что может привести к несоответствию с остальной командой. Использование HTTPS-аутентификации с сохранёнными паролями требует ручного перелогина при каждом обновлении пароля.