Hinzufügen von Git-Revisionsinformationen zu Go-Binärdateien
Die Möglichkeit, die Git-Revision zu bestimmen, aus der eine Go-Binärdatei erstellt wurde, ist ein wertvoller Vorteil für Debugging und Versionsverfolgung. Durch die Integration dieser Informationen in die Binärdatei selbst können Ingenieure den Quellcode, der zum Erstellen einer bestimmten Version verwendet wurde, leicht identifizieren.
Warum das Festlegen von Versionsnummern in der Quelle nicht ausreicht
While Es mag intuitiv erscheinen, die bezpośrednio-Revisionsnummer einzuschließen, die unterschiedliche Natur der Git-Revisionen macht diesen Ansatz jedoch unpraktisch. Jede Änderung an der Codebasis würde den Quellcode verändern und im Wesentlichen ein bewegliches Ziel erzeugen.
Building mit Git Revision Embedded
Eine effektivere Lösung ist die Verwendung der go build-Befehle -ldflags-Option in Kombination mit einem speziell gestalteten Shell-Skript. Der folgende Codeausschnitt zeigt, wie dies erreicht wird:
VERSION=`git rev-parse --short HEAD`
go build -ldflags "-X main.version=$VERSION" myfile.go
Dieses Skript ruft die Git-Revision mit git rev-parse --short HEAD ab und weist sie der Variablen VERSION zu. Anschließend wird der Befehl go build mit der Option -ldflags aufgerufen, um die Variable main.version in die Binärdatei einzubetten. Die Einbeziehung von main. ist von entscheidender Bedeutung, da sie anzeigt, dass die Variable im Hauptpaket Ihres Go-Programms definiert ist.
Zugriff auf die Revisionsinformationen
Sobald die Binärdatei erstellt ist, können Sie darauf zugreifen die Git-Revisionsinformationen mit dem folgenden Befehl:
fmt.Println(version)
Durch Ausführen dieses Codes wird die Git-Revision, die während des Build-Prozesses eingebettet wurde, in gedruckt Konsole. Auf diese Weise können Sie die Version des Codes, der die Binärdatei generiert hat, einfach nachverfolgen, was beim Debuggen und bei der Versionskontrolle hilfreich ist.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3