Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Membenamkan Maklumat Semakan Git dalam Go Binaries untuk Penyelesaian Masalah?

Bagaimana untuk Membenamkan Maklumat Semakan Git dalam Go Binaries untuk Penyelesaian Masalah?

DDD
DDDasal
2024-10-27 06:28:29323semak imbas

How to Embed Git Revision Information in Go Binaries for Troubleshooting?

Menentukan Penyemakan Git dalam Go Binaries

Apabila menggunakan kod, boleh membantu untuk mengaitkan binari dengan semakan git yang ianya dibina untuk tujuan penyelesaian masalah. Walau bagaimanapun, mengemas kini secara langsung kod sumber dengan nombor semakan tidak boleh dilaksanakan, kerana ia mengubah sumber.

Penyelesaian: Gunakan Bendera Bina

Penyelesaian kepada cabaran ini melibatkan memanfaatkan bendera binaan. Dengan menetapkan pembolehubah versi dalam pakej utama dengan semakan git semasa menggunakan bendera binaan, anda boleh mengekalkan pautan antara binari dan versi sumbernya. Ini boleh dicapai melalui langkah berikut:

  1. Dapatkan semakan git ke dalam pembolehubah persekitaran $VERSION menggunakan arahan git rev-parse --short HEAD.
  2. Tetapkan pembolehubah versi dalam pakej utama dengan bendera binaan -ldflags "-X main.version=$VERSION" semasa proses binaan pergi.

Berikut ialah skrip contoh yang menunjukkan pendekatan ini:

#!/bin/sh
VERSION=`git rev-parse --short HEAD`
go build -ldflags "-X main.version=$VERSION"  myfile.go

Dengan melaksanakan skrip ini, anda boleh membina binari dengan semakan git semasa dibenamkan dalam pembolehubah versi, membolehkan anda mendapatkannya kemudian menggunakan ./mybinary --revision.

Atas ialah kandungan terperinci Bagaimana untuk Membenamkan Maklumat Semakan Git dalam Go Binaries untuk Penyelesaian Masalah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn