The issue at hand here is interesting: GIT _commit_ integrity is not guaranteed over all operations, even if you sign commits. The problem is that GIT often changes commit details. If you, for example, rebase or cherry-pick a commit, the identity changes - as the commit includes a reference to the parent commit(s). This means that once you do any of those (standard) operations, the signature becomes invalid. Signing…
For example you could cherry-pick all commits except security fixes and create a malicious version of the software that has all commits still signed by the original author.