Skip to content

Latest commit

 

History

History
170 lines (119 loc) · 7.85 KB

File metadata and controls

170 lines (119 loc) · 7.85 KB

Данное руководство описывает настройку Git, SSH-ключей, GnuPG для подписания коммитов и GitHub CLI. Выполняется один раз перед началом лабораторных работ.


1. Переменные окружения Git

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                     # удалить настройку

2. Установка Git и GitHub CLI

# 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                                           # проверка

3. SSH-ключ для GitHub

$ 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!"

4. GnuPG для подписания коммитов

GPG-подпись подтверждает авторство коммита. GitHub показывает зелёный бейдж Verified.

$ gpg --full-generate-key                                  # создание ключа (RSA 4096, срок — 1 год)
$ gpg --list-secret-keys --keyid-format=long               # список ключей

Вывод покажет строку вида sec rsa4096/ABCDEF1234567890ABCDEF1234567890 это ваш 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.


5. Установка zsh (опционально)

# 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)"

6. Personal Access Token

Нужен для работы с Gist и API.

  • Перейдите на github.com/settings/tokens/new
  • Выберите scope: gist
  • Сгенерируйте и сохраните токен — он показывается только один раз

Troubleshooting

Если столкнулись с проблемами — смотрите Troubleshooting.


Links