user.signingkey.-S или --gpg-sign при коммите, либо настроить Git для автоматической подписи всех коммитов.Для подписывания коммитов с помощью GPG необходимо выполнить несколько шагов. Подпись коммитов обеспечивает целостность и подтверждает авторство, что особенно важно при работе в команде или с открытыми проектами.
Установите GPG (GNU Privacy Guard) на свою систему. Инструкции зависят от вашей операционной системы:
sudo apt-get install gnupgsudo yum install gnupg или sudo dnf install gnupgbrew 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, и вы сможете убедиться в их подлинности.