Инструкция

Настройка Git: git config, имя, почта и SSH-ключи

Обновлено: · Skillaria.Top

Базовая настройка Git — это команды git config --global user.name и git config --global user.email, которые подписывают ваши коммиты, плюс выбор редактора и ветки по умолчанию. Для входа в GitHub без пароля создайте SSH-ключ командой ssh-keygen -t ed25519, добавьте публичный ключ в настройки аккаунта и проверьте связь через ssh -T git@github.com.

Минимальная настройка Git за одну минуту

Сразу после установки выполните четыре команды. Без первых двух Git откажется делать коммит, остальные избавят от типичных неудобств.

git config --global user.name "Анна Смирнова"
git config --global user.email "anna@example.com"
git config --global init.defaultBranch main
git config --global core.editor "code --wait"

Проверьте результат:

$ git config --global --list
user.name=Анна Смирнова
user.email=anna@example.com
init.defaultbranch=main
core.editor=code --wait

Дальше разберём, что именно делает каждая настройка, где Git их хранит и как подключить вход в GitHub по SSH.

Как работает git config: три уровня настроек

Команда git config читает и записывает параметры в одном из трёх файлов. Более узкий уровень переопределяет более широкий.

УровеньФлагФайлДействует на
Системный--system/etc/gitconfig (в Windows — в папке установки Git)Всех пользователей компьютера
Глобальный--global~/.gitconfig или ~/.config/git/configВсе ваши репозитории
Локальный--local (по умолчанию).git/config внутри репозиторияТолько этот репозиторий

Почти всё личное настраивается глобально, а исключения — локально. Например, рабочую почту для проектов компании задают внутри конкретного репозитория без флага --global.

Полезные команды git config

git config user.email                    # показать текущее значение
git config --list --show-origin          # все настройки и из какого файла каждая
git config --global --edit               # открыть ~/.gitconfig в редакторе
git config --global --unset core.editor  # удалить параметр

Флаг --show-origin — лучший помощник при отладке: он показывает, почему у вас «не та» почта, указывая файл, из которого пришло значение.

Имя и почта: почему это не формальность

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

Поменять имя или почту задним числом без переписывания истории нельзя, поэтому проверьте настройки до первого коммита.

Скрыть настоящую почту

Если репозиторий публичный, ваш email виден любому, кто посмотрит историю. GitHub предлагает служебный адрес вида ID+username@users.noreply.github.com (в настройках Emails). Укажите его в Git:

git config --global user.email "12345678+anna@users.noreply.github.com"

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

Чтобы не настраивать каждый рабочий репозиторий вручную, используйте условное подключение конфигов. В ~/.gitconfig:

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

А в ~/.gitconfig-work:

[user]
    email = anna@company.com

Теперь все репозитории внутри ~/work/ автоматически используют рабочую почту. Слеш в конце пути обязателен.

Другие полезные настройки Git

Редактор

Git открывает редактор для сообщений коммитов, интерактивного rebase и слияний. По умолчанию это часто Vim. Варианты:

git config --global core.editor "code --wait"   # VS Code
git config --global core.editor "nano"          # Nano
git config --global core.editor "subl -n -w"    # Sublime Text

Ветка по умолчанию

init.defaultBranch main задаёт имя первой ветки в новых репозиториях (доступно с Git 2.28). Без неё Git создаст master и покажет подсказку о смене имени.

Переводы строк

git config --global core.autocrlf true    # Windows
git config --global core.autocrlf input   # macOS и Linux

Так в репозитории всегда хранятся переводы строк LF, и в команде не появляются «изменения» во всех строках файла.

Поведение git pull

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

git config --global pull.rebase false   # слияние (merge), поведение по умолчанию
git config --global pull.rebase true    # перебазирование, линейная история
git config --global pull.ff only        # только перемотка, иначе ошибка

Кириллица в именах файлов и цвет

git config --global core.quotepath false
git config --global color.ui auto

Алиасы

git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.lg "log --oneline --graph --decorate --all"
git config --global alias.last "log -1 HEAD"

Теперь git lg рисует граф веток, а git last показывает последний коммит.

Как выглядит ~/.gitconfig после настройки

[user]
    name = Анна Смирнова
    email = anna@example.com
[init]
    defaultBranch = main
[core]
    editor = code --wait
    autocrlf = input
    quotepath = false
[pull]
    rebase = false
[alias]
    st = status
    lg = log --oneline --graph --decorate --all

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

Git login: как входить в GitHub

У Git нет команды git login — частая ловушка для новичков. Git не хранит «аккаунт»: аутентификация происходит при обращении к серверу (clone, push, fetch) по одному из двух протоколов.

HTTPSSSH
Адресhttps://github.com/user/repo.gitgit@github.com:user/repo.git
Чем подтверждается входТокен доступа или вход через браузер (Credential Manager)Пара SSH-ключей
Пароль от аккаунтаНе принимается с 2021 годаНе нужен
Когда удобнееWindows с Git Credential Manager, корпоративные проксиmacOS, Linux, серверы, CI

Вход по HTTPS

В Git for Windows и в macOS-сборках с Git Credential Manager при первом git push откроется окно браузера для входа в GitHub, и данные сохранятся в хранилище системы. Альтернатива — официальный инструмент GitHub CLI: команда gh auth login проводит через авторизацию и настраивает Git. Если всё делаете вручную, создайте Personal access token в настройках GitHub (Developer settings) и вводите его вместо пароля.

SSH для Git: пошаговая настройка

SSH-ключ — это пара файлов: приватный ключ остаётся у вас, публичный вы отдаёте GitHub. Сервер проверяет, что вы владеете приватной частью, и пароль больше никогда не спрашивается.

Шаг 1. Проверьте, нет ли ключа

ls -la ~/.ssh

Если там уже есть id_ed25519 и id_ed25519.pub, переходите к шагу 3.

Шаг 2. Создайте ключ

ssh-keygen -t ed25519 -C "anna@example.com"

Нажмите Enter, чтобы сохранить ключ в путь по умолчанию, и задайте парольную фразу — она защитит ключ, если ноутбук украдут. Ed25519 — современный рекомендуемый алгоритм. Если старая система его не поддерживает, используйте ssh-keygen -t rsa -b 4096 -C "anna@example.com".

Шаг 3. Добавьте ключ в ssh-agent

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

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

На macOS добавьте в ~/.ssh/config строки, чтобы фраза хранилась в связке ключей:

Host github.com
    AddKeysToAgent yes
    UseKeychain yes
    IdentityFile ~/.ssh/id_ed25519

и выполните ssh-add --apple-use-keychain ~/.ssh/id_ed25519.

Шаг 4. Добавьте публичный ключ на GitHub

cat ~/.ssh/id_ed25519.pub

Скопируйте всю строку, начиная с ssh-ed25519. На GitHub откройте Settings → SSH and GPG keys → New SSH key, вставьте ключ и дайте понятное название, например «Ноутбук 2026». Никогда не отправляйте и не публикуйте файл без .pub — это приватный ключ.

Шаг 5. Проверьте соединение

$ ssh -T git@github.com
Hi anna! You've successfully authenticated, but GitHub does not provide shell access.

При первом подключении SSH спросит, доверять ли хосту, — сверьте отпечаток с опубликованными в документации GitHub и ответьте yes.

Шаг 6. Переключите репозиторий на SSH

Если репозиторий был склонирован по HTTPS, поменяйте адрес remote:

git remote -v
git remote set-url origin git@github.com:anna/my-project.git
git push

Несколько аккаунтов GitHub на одном компьютере

Один SSH-ключ можно привязать только к одному аккаунту GitHub. Для рабочего и личного аккаунтов создайте два ключа и псевдонимы хостов в ~/.ssh/config:

Host github-work
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_work
    IdentitiesOnly yes

Клонируйте рабочие репозитории через псевдоним: git clone git@github-work:company/app.git. Вместе с includeIf для почты это даёт полностью разделённые рабочее и личное окружения.

Частые ошибки при настройке

«Please tell me who you are»

Не заданы user.name и user.email. Выполните команды из начала статьи и повторите коммит.

«Permission denied (publickey)»

GitHub не нашёл подходящий ключ. Проверьте, что ключ добавлен в агент (ssh-add -l), публичная часть добавлена в аккаунт, а подробности покажет ssh -vT git@github.com.

«Support for password authentication was removed»

Вы ввели пароль от аккаунта при работе по HTTPS. Используйте токен, вход через Credential Manager или переходите на SSH.

Коммиты на GitHub без аватара

Почта в git config user.email не добавлена в профиль GitHub. Добавьте её в Settings → Emails — старые коммиты привяжутся автоматически.

Порт 22 закрыт в сети

GitHub принимает SSH и на порту 443. В ~/.ssh/config укажите Host github.com, Hostname ssh.github.com, Port 443.

Порядок настройки на новом компьютере

  1. Установите Git и проверьте git --version.
  2. Задайте user.name, user.email, init.defaultBranch и редактор.
  3. Перенесите или создайте ~/.gitconfig с алиасами и стратегией pull.
  4. Создайте новый SSH-ключ (не копируйте старый приватный ключ между машинами без необходимости) и добавьте его на GitHub.
  5. Проверьте доступ командой ssh -T git@github.com и склонируйте рабочий репозиторий по SSH-адресу.

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

Итог

Настройка Git сводится к трём шагам: задать имя и почту через git config --global, выбрать редактор, ветку по умолчанию и стратегию pull, а затем подключить вход в GitHub — проще и надёжнее всего по SSH-ключу. Помните, что команды git login нет: аутентификация происходит при обращении к серверу. Настройка конфигурации и SSH-доступа подробно разобрана на практике в курсе по Git.

Частые вопросы

Где хранятся настройки Git в Windows?

Глобальные — в файле C:\Users\Имя\.gitconfig, локальные — в .git\config каждого репозитория. Узнать точное расположение помогает git config --list --show-origin.

Как сбросить настройки Git?

Удалите или переименуйте файл ~/.gitconfig — Git вернётся к значениям по умолчанию. Отдельный параметр удаляется командой git config --global --unset имя.

Можно ли использовать один SSH-ключ для GitHub и GitLab?

Да, один публичный ключ можно добавить в разные сервисы. Ограничение только одно: на GitHub ключ привязывается к одному аккаунту.

Как подписывать коммиты, чтобы на GitHub была отметка Verified?

Настройте подпись GPG- или SSH-ключом: например, git config --global gpg.format ssh, user.signingkey с путём к публичному ключу и commit.gpgsign true, затем добавьте ключ на GitHub как Signing key.

Нужно ли настраивать Git заново после обновления?

Нет, обновление не трогает ~/.gitconfig и ключи в ~/.ssh — все настройки сохраняются.

Разберите тему на видео

Эта тема подробно разобрана с практикой в курсе «Git с нуля до уверенного разработчика».

Перейти к курсу