Mit der Signatur des Commits unterschreibst du den Commit persönlich und bestätigst, dass der übermittelte Code von dir stammt. Das kann nur machen, wer auch den privaten Schlüssel zur Verfügung hast. In der Regel bist das ausschließlich du. Damit kann zwar jemand mit deinem Namen und Mail-Adresse einen Commit erstellen und pushen und sich als Du ausgeben, nicht aber mit deiner Signatur unterschreiben (Zugriff auf das Repository vorausgesetzt).
Nun kommt es aber nach der Konfiguration unter Windows häufig zu diesem Fehler:
gpg: signing failed: No secret key
In diesem fall fehlt dir vermutlich nur eine Git-Konfiguration. Und zwar kann Git die GPG-Applikation nicht finden.
git config --global gpg.program [GPG-Pfad]
Einfach den GPG-Pfad mit dem direkten Pfad zur gpg.exe
versehen und das Signieren funktioniert sofort.
Wie Git-Commits signieren?
Falls sich die allgemeine Frage auftut, wie man Git-Commits signieren kann, ein paar kurze Worte dazu. Wenn du beispielsweise GPG verwendest, kannst du (sofern noch nicht vorhanden) ein neues Schlüsselpaar anlegen. Mit
gpg --list-keys
kannst du dir dann dein Schlüsselpaare ausgeben lassen. Vom gewünschten Schlüsselpaar kopierst du dir die Schlüssel-Id. Diese hinterlegst du in der Git-Konfiguration als Standard-Schlüssel-Id. Hierzu nachfolgend einfach [KEYID]
mit dre Schüssel-Id ersetzen.
git config --global user.signingkey [KEYID]
Nun noch unter Windows den Link zur gpg.exe
eintragen, wie oben gezeigt und schon können Commits mit der zusätzlichen Option -S
des Kommandos git commit
signiert werden. Hierzu unbedingt auf Groß- und Kleinschreibung achten. Beispiel:
git commit -S -am "Test commit"
So einfach fügst du deine persönliche Unterschrift dem Commit hinzu. Ich persönlich empfehle diese Vorgehensweise.