In Git lässt sich die Urheberschaft eines Commits ohne zusätzliche Prüfung mit beliebigen Namen und E-Mail-Adressen angeben. Die offizielle Git-Dokumentation beschreibt deshalb signierte Tags und Commits, mit denen Teams die Herkunft von Änderungen prüfen können. Für die Software-Lieferkette in der Spieleentwicklung ist das besonders relevant, wenn viele interne und externe Beitragende an einem Repository arbeiten.
GPG-Signaturen für Commits und Tags
Git kann eine Änderung mit einem GPG-Schlüssel signieren. Der Schlüssel wird über git config --global user.signingkey hinterlegt. Ein signierter Commit entsteht anschließend mit git commit -S, ein signiertes Tag mit git tag -s. Die Signatur bestätigt, dass die Änderung von der hinterlegten Schlüsselinstanz stammt und nachträglich nicht unbemerkt verändert wurde.
Autor und Committer sind nicht immer dieselbe Person
In der Commit-Historie unterscheidet Git zwischen der Person, die den Code geschrieben hat, und der Person, die ihn eingereicht hat. Das ist etwa bei Rebases oder beim Übernehmen eines Patches wichtig. Eine Signatur ergänzt diese Angaben um einen kryptografischen Nachweis und erleichtert die Prüfung in Open-Source-Projekten sowie in geschlossenen Studio-Repositories.
Signierung ergänzt die übrigen Prüfungen
Signierte Commits ersetzen weder Code-Reviews noch automatisierte Tests. Sie machen jedoch sichtbar, ob eine Änderung von einer erwarteten Schlüsselinstanz stammt. In großen Spiele-Repositories ergänzt die Funktion damit Werkzeuge wie Git Large File Storage, die auf die Verwaltung umfangreicher Binärdateien zielen.

