Git: Signierte Commits schützen die Code-Historie

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.

Weitere News

Weitere News

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein