संपादित करें: Git संस्करण 1.7.9 के रूप में, यह है संभव Git प्रतिबद्ध हस्ताक्षर करने के लिए ( git commit -S
)। इसे प्रतिबिंबित करने के लिए उत्तर को थोड़ा अद्यतन करें।
प्रश्न शीर्षक है:
क्या GPG कुंजी के साथ Git में "ऑटोसाइन" करने का कोई तरीका है?
संक्षिप्त उत्तर: हाँ, लेकिन ऐसा न करें।
प्रश्न में टाइपो को संबोधित करना: git commit -s
प्रतिबद्ध पर हस्ताक्षर नहीं करता है। बल्कि, man git-commit
पेज से:
-s, --signoff
प्रतिबद्ध लॉग संदेश के अंत में कमेंट द्वारा साइन-ऑफ-बाय लाइन जोड़ें।
यह निम्न के समान एक लॉग आउटपुट देता है:
± $ git log [0:43:31]
commit 155deeaef1896c63519320c7cbaf4691355143f5
Author: User Name
Date: Mon Apr 16 00:43:27 2012 +0200
Added .gitignore
Signed-off-by: User Name
"साइन-ऑफ-बाय: ..." पर ध्यान दें; उस -s
ध्वज द्वारा उत्पन्न किया गया था git-commit
।
रिलीज की घोषणा ईमेल का हवाला देते हुए :
- "git कमिट" सीखा "-S" GPG- हस्ताक्षर करने के लिए कमिट; इसे "- लॉग-लॉग" विकल्प के साथ "गिट लॉग" दिखाया जा सकता है।
तो हाँ, आप प्रवेश कर सकते हैं। हालांकि, मैं व्यक्तिगत रूप से इस विकल्प के साथ सावधानी बरतने का आग्रह करता हूं; स्वचालित रूप से हस्ताक्षर करना व्यर्थ के बगल में है, नीचे देखें:
सिर्फ एक साइड सवाल, शायद कमिट्स पर हस्ताक्षर नहीं होने चाहिए, केवल टैग, जो मैं कभी नहीं बनाता, जैसा कि मैं सिंगल कमिट सबमिट करता हूं।
यह सही है। कमिट पर हस्ताक्षर नहीं किए गए हैं; टैग हैं। इसका कारण लिनुस टॉर्वाल्ड्स के इस संदेश में पाया जा सकता है , जिसका अंतिम पैराग्राफ कहता है:
प्रत्येक वचन पर हस्ताक्षर करना पूरी तरह से मूर्खता है। इसका सिर्फ इतना मतलब है कि आप इसे स्वचालित करते हैं, और आप हस्ताक्षर कम मूल्य पर बनाते हैं। यह किसी भी वास्तविक मूल्य को नहीं जोड़ता है, क्योंकि SHA1 के कार्य के git DAG- श्रृंखला के बाद से, आपको केवल एक ही
हस्ताक्षर की आवश्यकता होती है ताकि सभी कमिट एक से प्रभावी हो सकें जो कि प्रभावी रूप से उस एक द्वारा कवर किया जाए। इसलिए प्रत्येक कमिट पर हस्ताक्षर करने से बिंदु गायब है।
मैं लिंक किए गए संदेश को ब्राउज़ करने के लिए प्रोत्साहित करता हूं, जो स्पष्ट करता है कि साइन इन करना स्वचालित रूप से एक बेहतर विचार नहीं है जितना मैं कर सकता था।
हालाँकि , यदि आप स्वचालित रूप से एक टैग पर हस्ताक्षर करना चाहते हैं, तो आप इसे git-tag -[s|u]
एक उपनाम में लपेटकर ऐसा करने में सक्षम होंगे ; यदि आप ऐसा करने जा रहे हैं, तो आप संभवतः अपनी कुंजी आईडी ~/.gitconfig
या प्रोजेक्ट-विशिष्ट .git/config
फ़ाइल को सेटअप करना चाहते हैं । उस प्रक्रिया के बारे में अधिक जानकारी गिट समुदाय की किताब में देखी जा सकती है । टैग्स पर हस्ताक्षर करना आपके द्वारा किए गए प्रत्येक वचन पर हस्ताक्षर करने से अधिक उपयोगी है।