Данное руководство описывает настройку Git, SSH-ключей, GnuPG для подписания коммитов и GitHub CLI. Выполняется один раз перед началом лабораторных работ.
Git config работает на трёх уровнях:
--local— только для текущего репозитория, файл.git/config--global— для пользователя, файл~/.gitconfig--system— для всех пользователей,/etc/gitconfig
$ git config --global user.name "Ваше Имя"
$ git config --global user.email "email@example.com"
$ git config --global core.editor "vim" # или nano
$ git config --global alias.co checkout # git co вместо git checkout
$ git config --global help.autocorrect prompt # автозамена при опечатке
$ git config --global core.autocrlf true # Windows: true, Linux/macOS: input
$ git config --global credential.helper cache # кэш учётных данных (15 мин)
$ git config --global commit.gpgsign true # автоподпись коммитовПолезные команды:
$ git config list # показать все настройки
$ git config user.name # показать конкретную
$ git config edit --global # открыть конфиг в редакторе
$ git config unset --global user.email # удалить настройку# Ubuntu / Debian
$ sudo apt install -y git
$ curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
$ sudo apt update && sudo apt install gh -y
# Fedora
$ sudo dnf install -y git gh
# macOS
$ brew install git ghАвторизация:
$ gh auth login # интерактивная авторизация
$ gh auth status # проверка$ ssh-keygen -t ed25519 -C "email@example.com" # генерация ключа
$ eval "$(ssh-agent -s)" # запуск агента
$ ssh-add ~/.ssh/id_ed25519 # добавление ключа в агент
$ cat ~/.ssh/id_ed25519.pub # скопировать публичный ключДобавить ключ в GitHub: Settings → SSH and GPG keys → New SSH key → вставить содержимое .pub
Проверка:
$ ssh -T git@github.com # ожидается: "Hi username!"GPG-подпись подтверждает авторство коммита. GitHub показывает зелёный бейдж Verified.
$ gpg --full-generate-key # создание ключа (RSA 4096, срок — 1 год)
$ gpg --list-secret-keys --keyid-format=long # список ключейВывод покажет строку вида sec rsa4096/ABCDEF1234567890 — ABCDEF1234567890 это ваш KEY ID.
$ gpg --armor --export ABCDEF1234567890 # экспорт публичного ключаСкопируйте вывод (от -----BEGIN PGP PUBLIC KEY BLOCK----- до -----END) и добавьте в GitHub: Settings → SSH and GPG keys → New GPG key
Настройка Git:
$ git config --global user.signingkey ABCDEF1234567890 # указать ключ
$ git config --global commit.gpgsign true # автоподпись коммитов
$ git config --global tag.gpgSign true # автоподпись теговКоммит с подписью:
$ git commit -S -m "feat: signed commit" # -S для явной подписи
$ git log --show-signature -1 # проверка подписиsmimesign — альтернатива GPG для подписания коммитов через X.509 сертификаты (корпоративные PKI). Используется в организациях с существующей PKI-инфраструктурой вместо GPG.
# Ubuntu / Debian
$ sudo apt install zsh -y
# macOS
$ brew install zsh
# Проверка
$ zsh --version
# Сделать дефолтным
$ chsh -s $(which zsh)
# Oh My Zsh (опционально)
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"Нужен для работы с Gist и API.
- Перейдите на github.com/settings/tokens/new
- Выберите scope:
gist - Сгенерируйте и сохраните токен — он показывается только один раз
Если столкнулись с проблемами — смотрите Troubleshooting.