मैजीट के साथ स्वचालित रूप से हस्ताक्षर कैसे करें?


13

मुझे अपनी प्रत्येक कमिट पर अपनी GPG कुंजी के साथ हस्ताक्षर करने में दिलचस्पी है। चूंकि मैं गिट के साथ इंटरफेसिंग के लिए मैगिट का उपयोग करता हूं, इसलिए मैं सोच रहा था कि क्या मैगिट को प्रत्येक कमिट पर हस्ताक्षर करना संभव था (या इसे प्राप्त करने के लिए कुछ समाधान संभव था, कम से कम)।


क्या Git भी हस्ताक्षर करने का समर्थन करता है? मैंने सोचा था कि केवल टैग पर हस्ताक्षर किए जा सकते हैं ...
lunaryorn

1
@lunaryorn git commit -S[<keyid>], --gpg-sign[=<keyid>]। प्रत्येक कमिट पर हस्ताक्षर करने का कम से कम एक कारण है: इस बात के पुख्ता सबूत होना कि यह कमिटमेंट उस व्यक्ति से आया है जिसे आप सोचते हैं कि यह किया है। टैग पर हस्ताक्षर करने से आप केवल इतिहास परिवर्तनों का पता लगा सकते हैं।
न्सुकामी _

@Nsukami_That मेरे सवाल का जवाब नहीं देता है, क्या यह?
चंद्रग्रहण

यदि यह आपके प्रश्न का उत्तर नहीं देता है तो @lunaryorn क्षमा करें। हां, Git सपोर्ट
कमिटमेंट

जवाबों:


20

मैगिट कमिट्स में कमिटिंग पॉपअप ( c) का उपयोग करके बनाया जाता है । इसलिए पॉपअप gpg समर्थन की तलाश शुरू करने के लिए एक अच्छी जगह होगी। यदि आप ऐसा करते हैं, तो आप यह पाएंगे:

=S Sign using gpg (--gpg-sign=)

तो टाइप करें = Sऔर एक कुंजी चुनें। ऐसा करने से बचने के लिए कि हर बार जब आप एक प्रतिबद्ध बनाते हैं तो आप उस तर्क के मूल्य (और वर्तमान में अन्य सभी निर्धारित तर्क) का उपयोग करके बचा सकते हैं C-x C-s

आपको अभी भी हर बार पासफ़्रेज़ लिखना होगा। इससे बचने के लिए आपको एक gpg- एजेंट शुरू करना चाहिए और यह सुनिश्चित करना चाहिए कि Emacs इसके बारे में जानता है, जैसे keychainशेल स्क्रिप्ट और keychain-environmentEmacs पैकेज का उपयोग करना।

--show-signatureलॉगिंग पॉपअप में भी तर्क देखें और सेट करें ।


क्या इसमें बदलाव किया गया है transient?
तेजसुबने

1
यह तर्क अब डिफ़ॉल्ट रूप से छिपा हुआ है। क्षणिक घोषणा बताती है कि "स्तर" को बदलकर इसे कैसे दिखाया जाए।
तारसियस

यदि कोई यहाँ देख रहा है, तो वह स्तब्ध है
tejasbubane

@tarsius मुझे स्तर बदलने में सक्षम नहीं होना चाहिए। मैं ऐसा करने के बारे में कैसे निर्धारित करूं? धन्यवाद।
e18r

Tejasbubane से जुड़े प्रलेखन का कौन सा हिस्सा अस्पष्ट है?
वृषभ

15

अपने $HOME/.gitconfigया अपने में यह कोशिश करो.git/config

[user]
    email = YourEmail
    name = YourName
    signingkey = XXXXXXXX
[commit]
    gpgsign = true

फिर हमेशा की तरह कमिट करें।


इस उत्तर का यह फायदा है कि आप प्रति रिपॉजिटरी की एक कुंजी सेट कर सकते हैं। ऐसा लगता है कि मैगिट का =Sविकल्प कुंजी को सेट करता है $HOME/.gitconfig, इसलिए आपके सभी रिपॉजिटरी के लिए समान है।
ph0t0nix
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.