user.signingkey
.-S
или --gpg-sign
при коммите, либо настроить Git для автоматической подписи всех коммитов.Для подписывания коммитов с помощью GPG необходимо выполнить несколько шагов. Подпись коммитов обеспечивает целостность и подтверждает авторство, что особенно важно при работе в команде или с открытыми проектами.
Установите GPG (GNU Privacy Guard) на свою систему. Инструкции зависят от вашей операционной системы:
sudo apt-get install gnupg
sudo yum install gnupg
или sudo dnf install gnupg
brew install gnupg
. Может потребоваться установка GPG Suite с gpgtools.org для интеграции с macOS.Если у вас нет GPG ключа, сгенерируйте его. Запустите команду:
gpg --gen-key
Следуйте инструкциям на экране. Рекомендуется использовать RSA и указать длину ключа 4096 бит. Запомните или запишите свой user ID (имя и email).
Узнайте ID вашего GPG ключа. Выполните команду:
gpg --list-secret-keys --keyid-format long
Найдите строку, начинающуюся с sec
. ID ключа – это 8-символьный код после слеша (/
). Например: sec rsa4096/3AA5C34371567BD2 2016-03-10 [SC]
. ID ключа в данном случае - 3AA5C34371567BD2
.
Сообщите Git, какой GPG ключ использовать для подписи коммитов. Замените YOUR_GPG_KEY_ID
на фактический ID вашего ключа, полученный на предыдущем шаге:
git config --global user.signingkey YOUR_GPG_KEY_ID
Чтобы всегда подписывать коммиты, выполните команду:
git config --global commit.gpgsign true
Если вы хотите подписывать только определенные коммиты, используйте флаг -S
при коммите:
git commit -S -m "Your commit message"
Чтобы подписывать теги, используйте флаг -s
или -a
при создании тега:
git tag -s v1.0 -m "Release v1.0"
Или
git tag -a v1.0 -m "Release v1.0" -s
Чтобы GitHub (или другой сервис Git) отображал, что ваши коммиты подписаны, вам нужно добавить ваш GPG публичный ключ в настройки аккаунта.
gpg --armor --export YOUR_GPG_KEY_ID
Скопируйте вывод команды (включая -----BEGIN PGP PUBLIC KEY BLOCK-----
и -----END PGP PUBLIC KEY BLOCK-----
).
На macOS могут возникнуть проблемы с доступом Git к GPG агенту. Проверьте, что агент запущен и сконфигурирован правильно. Обычно помогает добавление следующих строк в ваш ~/.bashrc
или ~/.zshrc
:
export GPG_TTY=$(tty)
export GPG_AGENT_INFO=$HOME/.gnupg/S.gpg-agent:0
gpgconf --launch gpg-agent
После этого необходимо перезапустить терминал.
После выполнения этих шагов ваши коммиты будут подписаны GPG, и вы сможете убедиться в их подлинности.