Где хранятся конфигурации репозитория в Git?

«Где хранятся конфигурации репозитория в Git?» — вопрос из категории Git, который задают на 24% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Конфигурация Git многоуровневая:

  1. Локальный репозиторий (наибольший приоритет): Файл .git/config в корне репозитория. Содержит специфичные для этого репозитория настройки: удаленные репозитории (remotes), настройки веток, хуки.

    [core]
        repositoryformatversion = 0
        filemode = true
        bare = false
    [remote "origin"]
        url = git@github.com:my-org/my-service.git
        fetch = +refs/heads/*:refs/remotes/origin/*
    [branch "main"]
        remote = origin
        merge = refs/heads/main
  2. Глобальный (пользовательский) уровень: Файл ~/.gitconfig (или ~/.config/git/config). Содержит настройки, применяемые ко всем репозиториям текущего пользователя (имя, email, алиасы, цвета).

    git config --global user.name "John Doe" # Записывает в этот файл
  3. Системный уровень (наименьший приоритет): Файл /etc/gitconfig. Содержит настройки для всех пользователей системы. Управляется, как правило, администратором.

В DevOps-практиках часто используется глобальная конфигурация для установки стандартных алиасов (например, git lg для красивого лога) и хуков, а также управление конфигурацией репозитория через инструменты вроде Ansible для единообразия.