↓Перейти к содержанию
  1. Git: руководства и команды/

Настройка пользователя в Git: имя, email и параметры

·4 минуты·

Настройка пользователя в Git определяет, кто является автором коммитов. Правильная конфигурация важна: ваши коммиты будут приписаны вам на GitHub, GitLab и других платформах. Статья покажет как установить, изменить и проверить пользовательские данные — включая продвинутые сценарии с несколькими профилями.

Основные пользовательские параметры #

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

# Установить имя разработчика
git config --global user.name "Иван Петров"

# Установить email разработчика
git config --global user.email "[email protected]"

Флаг --global означает, что эти настройки применятся ко всем репозиториям на вашем компьютере. Это рекомендуемый подход для первоначальной настройки.

Если имя или email не установлены, Git не даст создать коммит:

Author identity unknown

*** Please tell me who you are.

Run
  git config --global user.email "[email protected]"
  git config --global user.name "Your Name"

Три уровня конфигурации Git #

Git поддерживает три уровня конфигурации, каждый перекрывает предыдущий:

Системный уровень (--system) — применяется ко всем пользователям компьютера. Хранится в /etc/gitconfig. Используется редко, обычно администраторами.

sudo git config --system user.name "System User"

Глобальный уровень (--global) — применяется ко всем репозиториям текущего пользователя. Хранится в ~/.gitconfig.

git config --global user.name "Иван Петров"
git config --global user.email "[email protected]"

Локальный уровень (без флага) — применяется только к текущему репозиторию. Хранится в .git/config внутри репозитория. Перекрывает глобальные настройки.

cd ~/projects/work-project
git config user.name "Иван Петров"
git config user.email "[email protected]"

Как изменить существующие параметры #

Просто повторите команду с новым значением:

# Изменить имя
git config --global user.name "Пётр Иванов"

# Изменить email
git config --global user.email "[email protected]"

Новое значение перезапишет старое в файле ~/.gitconfig.

Проверка текущих настроек #

Несколько способов проверить конфигурацию:

# Просмотр конкретного параметра
git config user.name
git config user.email

# Просмотр всех параметров с их источниками (какой файл задаёт каждый параметр)
git config --list --show-origin

# Только глобальные параметры
git config --global --list

# Только локальные параметры репозитория
git config --local --list

# Проверить, какой email использован в последнем коммите
git log -1 --format='%ae'

Прямое редактирование файла конфигурации #

Все параметры хранятся в текстовых файлах формата INI:

# Открыть глобальный конфиг в редакторе
git config --global --edit

# Или отредактировать файл напрямую
nano ~/.gitconfig

Пример содержимого ~/.gitconfig:

[user]
    name = Иван Петров
    email = [email protected]
[core]
    editor = nano
    autocrlf = input
[color]
    ui = true
[alias]
    st = status
    co = checkout
    lg = log --oneline --graph --all

Разные пользователи для разных проектов #

Типичная ситуация: рабочие проекты должны иметь рабочий email, личные — личный. Локальная конфигурация решает это:

# Глобально — для личных проектов
git config --global user.name "Иван Петров"
git config --global user.email "[email protected]"

# Для рабочего проекта — переопределяем локально
cd ~/work/my-app
git config user.email "[email protected]"

# Проверить, что используется в рабочем проекте
git config user.email
# → [email protected]

# Коммит будет с company.com
git commit -m "Add feature"
git log -1 --format='%ae'
# → [email protected]

Автоматический выбор профиля по папке #

Git поддерживает условные include (начиная с Git 2.13). Это позволяет автоматически использовать нужный профиль в зависимости от расположения репозитория:

# ~/.gitconfig

[user]
    name = Иван Петров
    email = [email protected]

[includeIf "gitdir:~/work/"]
    path = ~/.gitconfig-work

[includeIf "gitdir:~/personal/"]
    path = ~/.gitconfig-personal

Создайте файл ~/.gitconfig-work:

[user]
    email = [email protected]

Теперь все репозитории в ~/work/ автоматически используют рабочий email, а в ~/personal/ — личный. Никаких ручных действий при каждом git clone.

Дополнительные параметры пользователя #

# Настройка GPG-ключа для подписи коммитов
git config --global user.signingkey <GPG_KEY_ID>

# Автоматически подписывать все коммиты
git config --global commit.gpgsign true

# Требовать явную настройку identity (защита от случайного использования глобальных данных)
git config --global user.useConfigOnly true

Практический пример настройки #

# Первичная настройка для личных проектов
git config --global user.name "Иван Петров"
git config --global user.email "[email protected]"

# Проверка
git config --list | grep user
# user.name=Иван Петров
# [email protected]

# Переход в рабочий проект
cd ~/work/my-app
git config user.email "[email protected]"

# Проверка локальной конфигурации
git config --local user.email
# → [email protected]

# Создание коммита (будет с рабочим email)
echo "Feature X" >> features.txt
git add .
git commit -m "feat: Add feature X"

# Проверка, какой email использован в коммите
git log -1 --format='%ae'
# → [email protected]

Часто задаваемые вопросы #

Обязательно ли использовать реальное имя? Git не требует. Но для идентификации в команде лучше использовать реальное имя или узнаваемый ник — коллеги должны понимать, кто сделал коммит.

Обязателен ли реальный email? Email должен быть валидным форматом для GitHub и других сервисов. GitHub привязывает коммиты к аккаунту по email — если адрес неправильный, коммит «потеряется».

Что произойдёт, если я установлю неправильный email? Коммиты не свяжутся с вашим аккаунтом на GitHub/GitLab. Позже можно исправить историю с помощью git filter-branch или git filter-repo, но это сложный процесс.

Могу ли я иметь разных пользователей для разных веток? Нет. Пользователь определяется на уровне репозитория (или глобально), не ветки. Если нужны разные профили — используйте разные репозитории или includeIf.

Как узнать, какой email я использовал для коммита? git log -n 1 --format='%ae' показывает email последнего коммита. Можно также посмотреть git show --format="%ae" HEAD.

Заключение #

Настройка пользователя в Git проста, но важна. Правильно установленные параметры гарантируют, что ваши коммиты будут правильно атрибутированы. Особенно важно проверить email перед работой с GitHub или GitLab.

Для полного понимания настроек Git читайте полное руководство по установке и настройке Git. Следующий шаг — научитесь делать правильные коммиты.