Задайте 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). Подпись доказывает, каким ключом подписан коммит, а не то, что код хороший; кроме того, платформы переподписывают своими ключами слияния, выполненные в веб-интерфейсе.