Перейти к содержимому
ecdsa.com

Подпись коммитов Git

Подписание коммитов и тегов Git ключами OpenPGP, SSH (начиная с Git 2.34) или X.509, чтобы хостинг-платформы и рецензенты могли проверить, кто их создал; настраивается параметрами gpg.format и user.signingkey.
Другие написанияsigned commitsgit commit -Sgpg.format sshgitsignverified commits

Задайте git config gpg.format ssh (или openpgp, x509), user.signingkey и commit.gpgsign true; для проверки используйте git log --show-signature или git verify-commit. Для проверки SSH-подписей нужен gpg.ssh.allowedSignersFile со списком принципалов и ключей. Git подписывает сам объект коммита, который фиксирует дерево и родительские коммиты, но не последующие перебазирования (rebase): они создают новые коммиты, которым нужны новые подписи.

GitHub и GitLab показывают значок Verified, если подпись соответствует ключу, зарегистрированному в аккаунте коммиттера (ключи подписи SSH регистрируются отдельно от ключей аутентификации), а правила защиты веток могут требовать подписанных коммитов. gitsign подписывает коммиты через Sigstore без долговременных ключей (keyless). Подпись доказывает, каким ключом подписан коммит, а не то, что код хороший; кроме того, платформы переподписывают своими ключами слияния, выполненные в веб-интерфейсе.

Стандарты и ссылки

Все термины