Avatar ·

बिल्ड के समय Go एप्लिकेशन में वर्जन नंबर और कमिट हैश कैसे जोड़ें?

सभी को नमस्ते! मैं Go में एक छोटा वेब एप्लिकेशन लिख रहा हूँ और चाहता हूँ कि यह स्टार्टअप पर अपना वर्जन दिखाए। अभी मैं कोड में मैन्युअली कॉन्स्टेंट बदलता हूँ:\n\n```go\nconst Version = "1.0.3"\n```\n\nलेकिन यह बहुत असुविधाजनक है। हर कमिट पर कोड में जाना, स्ट्रिंग बदलना, अलग से कमिट करना पड़ता है। और मैं सिर्फ वर्जन नंबर ही नहीं, बल्कि कमिट हैश और बिल्ड डेट भी देखना चाहता हूँ — ताकि पता चले कि सर्वर पर कौन सा बिल्ड चल रहा है।\n\nफ़ाइलें पढ़ने की कोशिश की, लेकिन यह काम नहीं करता अगर बाइनरी को दूसरी मशीन पर ले जाया जाए। ldflags के बारे में सुना है, लेकिन समझ नहीं आ रहा कि इन्हें सही तरीके से कैसे उपयोग करें।\n\nबताइए, Go प्रोजेक्ट्स में वर्जनिंग कैसे की जाती है? कंपाइलेशन के समय बाइनरी में वर्जन, कमिट हैश और बिल्ड डेट कैसे डालें ताकि यह बिना किसी हैक के काम करे? और जब `./myapp ver` चलाएँ तो यह दिखे?