मैं सोच रहा था कि पिछली बार गिट में मैंने क्या किया है, उससे पहले (-s
) पर हस्ताक्षर कैसे करें?गिट साइन ऑफ पिछले काम करता है?
उत्तर
signoff करने के लिए पिछले करने, का उपयोग संशोधन विकल्प:
Git --signoff
साइन-ऑन को ध्यान में रखते हुए प्रतिबद्ध संदेश को संशोधित करने के लिए, git filter-branch
का उपयोग करने के लिए इसका उपयोग किया जाता है।
git filter-branch --msg-filter \
"cat - && echo && echo 'Signed-off-by: Dan McGee <[email protected]>'" \
HEAD
या, निम्नलिखित Curt J. Sampson के suggestion, git interpret-trailers
का उपयोग कर ("git filter-branch
magic" से उदाहरण):
git config trailer.sign.key "Signed-off-by"
git filter-branch --msg-filter \
"cat - && echo && git interpret-trailers --trailer 'sign: 'Signed-off-by: Dan McGee <[email protected]>'" \
HEAD
चेतावनी: यह आपके मौजूदा प्रतिबद्ध के SHA1 बदल जाएगा, और आपको परिणाम को पुश करने के लिए मजबूर होना पड़ सकता है, जो कि आपके काम पहले से ही दूसरों द्वारा साझा किए जाने पर समस्याग्रस्त हो सकता है।
'हस्ताक्षर-बंद-द्वारा:' या हाथ से अन्य ट्रेलरों को जोड़ने के बजाय 'गिट फ़िल्टर-शाखा - एमएसजी-फ़िल्टर'' के साथ 'गिट व्याख्या-ट्रेलर' का उपयोग करने पर विचार करें। यह आपको, उदाहरण के लिए, ट्रेलरों को डुप्लिकेट करने से बचने देगा। –
@ CurtJ.Sampson हाँ! धन्यवाद। मैं सचमुच उस दस्तावेज को दस्तावेज कर रहा था: https://stackoverflow.com/a/41361273/6309। – VonC
@ CurtJ.Sampson मैंने तदनुसार जवाब में संशोधन किया है। – VonC
--amend प्रतिबद्ध एक -S
के साथ पुराने प्रतिबद्ध फिर से करना इस एक का प्रयास करें:
git filter-branch -f --commit-filter 'git commit-tree -S "[email protected]"' HEAD
उसके बाद, आपको git push -f
पर जाना होगा। लेकिन सावधान रहें, प्रतिबद्ध आईडी बदल जाएगी और अन्य लोग सिंक से बाहर हो जाएंगे।
यह सभी काम करता है, सही है? मैं केवल अंतिम एक्स काम कैसे कर सकता हूं? –
@ अकोसवंद्रा यदि आप अभी भी एक उत्तर की तलाश में हैं: '' git filter-branch -f --commit-filter 'git commit-tree -S "$ @"' HEAD ~ X..HEAD'', जहां एक्स है अंतिम एक्स की संख्या है। जैसे पिछले 2 कामों के लिए: 'गिट फ़िल्टर-शाखा-एफ - कमिट-फ़िल्टर 'गिट प्रतिबद्ध-पेड़-एस" $ @ "' हेड ~ 2.। हेड'' –
मेरे लिए सिर्फ हस्ताक्षर करने के लिए, वास्तव में github पर मेरी प्रतिबद्धता को सत्यापित नहीं किया था।
समाधान है कि मेरे लिए काम किया है वापस जा रहा है, और फिर प्रत्येक -S
git commit --amend -S
इसके अलावा के साथ प्रतिबद्ध है, तो आप अपने लिए प्रतिबद्ध वास्तव में हस्ताक्षर किया गया है की जाँच करें, और आपके ईमेल/नाम बस संलग्न नहीं है, इस आदेश
git show HEAD --show-signature
अतिरिक्त युक्ति का उपयोग करें: आप पहले से ही अपने प्रतिबद्ध में संशोधन कर रहे हैं, तो आप उन्हें में अपने असली नाम (git log
का उपयोग कर देखें) कर सकते हैं। आप अपने जीथब हैंडल नाम का उपयोग कर रहे हैं, जिसकी आवश्यकता नहीं है। केवल सही ईमेल की आवश्यकता है और उपयोगकर्ता नाम के क्षेत्र में आपको अपना पूरा नाम उपयोग करना चाहिए और जिथब इसे आपके जीथब हैंडल नाम से सही तरीके से ट्रैक करेगा। तो अपने उपयोगकर्ता नाम सही करने के लिए और अंतिम उपयोग के लिए प्रतिबद्ध साइन इन करें: द्वारा
git config --global user.name "FULL NAME"
भविष्य में
git commit --amend --author="FULL NAME <email>" -S
और उपयोगकर्ता नाम के लिए भी सेट पूरा नाम मैं एक ऐसी ही समस्या हुई।
$ git pull && git rebase --gpg-sign --force-rebase origin/master && git push --signed
Already up-to-date.
Current branch master is up to date, rebase forced.
First, rewinding head to replay your work on top of it...
Applying: sci-biology/KING: new package
Applying: dev-lang/yaggo: version bump, fix install procedure
Applying: sci-libs/htslib: version bump
Applying: sci-biology/bcftools: version bump
Applying: sci-biology/samtools: version bump
Applying: sci-biology/libBigWig: new release with io.h renamed to bigWigIO.h
Applying: sci-biology/MaSuRCA: add more URLs to HOMEPAGE
Applying: sci-biology/SPAdes: update comments on bundled dev-libs/boost
Applying: sci-biology/khmer: added a comment how to proceed with src_compile()
Applying: sci-biology/picard: version bump
Applying: sci-biology/ruffus: pint EGIT_REPO_URI to the archive URL of code.google.com
Applying: sci-biology/vcftools: the 0.1.15_pre release was just renamed to 0.1.15 by upstream
Applying: sci-biology/nanopolish: new package
Applying: sci-biology/libBigWig: version bump
Counting objects: 75, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (75/75), done.
Writing objects: 100% (75/75), 14.51 KiB | 0 bytes/s, done.
Total 75 (delta 55), reused 0 (delta 0)
remote: To github.com:gentoo/sci.git
remote: 29c5e3f5d..b37457700 master -> master
To git+ssh://git.gentoo.org/proj/sci.git
29c5e3f5d..b37457700 master -> master
$
- 1. गिट जोड़ें format.signoff का उपयोग कर साइन-ऑफ-लाइन लाइन
- 2. गिट: स्थानीय काम करता है
- 3. एम्पर्सेंड (&) साइन सी ++ में कैसे काम करता है?
- 4. गिट बिसेक्ट काम नहीं करता है, आउटपुट
- 5. गिट-संग्रह पुराने काम करता है
- 6. क्या गिट विंडोज में काम करता है?
- 7. गिट रिमोट कैसे काम करता है?
- 8. गिट-प्राप्त-पैक कैसे काम करता है?
- 9. "क्या" oauth_signature साइन करता है?
- 10. चेकआउट पिछले गिट सबमिशन प्रतिबद्ध
- 11. गिट रिबेस इंटरैक्टिव: स्क्वैश विलय एक साथ काम करता है
- 12. एरलंग में हैश साइन क्या करता है?
- 13. गिट गिस्ट - मार्कडाउन काम नहीं करता
- 14. 'गिट लॉग - ग्राफ' या 'एचजी ग्राफॉग' कैसे काम करता है?
- 15. गिट हैंडल मर्ज में कैसे काम करता है?
- 16. पुराने गिट को छोड़कर इतिहास से काम करता है?
- 17. एनएच-ऑफ-टाइप काम नहीं कर रहा है जब Div
- 18. वृद्धिशील स्थानीयकरण कैसे काम करता है?
- 19. matrix.setlookatm कैसे काम करता है?
- 20. मेल्ड काम नहीं करता है?
- 21. गिट: रीसेट - अभी भी मैं पिछले
- 22. गिट: पिछले और अगले प्रतिबद्धता पर जाएं
- 23. back_inserter कैसे काम करता है?
- 24. काम करता है after_sign_in_path_for काम करता है, लेकिन पुनर्निर्देशन नहीं होता
- 25. क्यों $() काम नहीं करता है लेकिन jQuery() काम करता है?
- 26. xmlsec1 साइन कमांड लाइन पर काम करता है लेकिन पाइथन कोड
- 27. एएसपी.नेट "पीला स्क्रीन ऑफ डेथ" कैसा प्रदर्शन करता है?
- 28. कमांड लाइन से गिट काम नहीं करता है, लेकिन एक गिट क्लाइंट (जैसे स्मार्टगिट) का उपयोग
- 29. गिट बैश के साथ पुश काम करता है, लेकिन गिट गुई
- 30. कैसे काम करता है?
जांच http://schacon.github.com/git/git-commit.html –
संभव डुप्लिकेट: यहाँ, Gentoo Linux से रॉबिन जॉनसन के लिए धन्यवाद मेरे सभी पिछले unpushed प्रतिबद्ध करने के लिए हस्ताक्षर जोड़ने के लिए एक चाल है http://stackoverflow.com/questions/1962094/what-is-the-sign-off-feature-in-git- –
के लिए मुझे आश्चर्य है कि यह ऐसा करने के लिए विडंबनापूर्ण रूप से असुरक्षित नहीं है। आपको कम से कम साइन इन करके "मैं दावा करता हूं कि पिछले काम सुरक्षित हैं"।लेकिन अगर आपने उन्हें क्लोन किया है, आदि, और आप इन पर वास्तविक जांच नहीं करते हैं, तो आप इस तरह कुछ बताते हैं जिसे आप चेक नहीं कर सकते। एक हैकर किसी भी तरह एक प्रतिबद्धता में हेरफेर की कल्पना करो। हालांकि हस्ताक्षर करना वास्तव में किसी को बाद के चरण में प्रतिबद्धता से छेड़छाड़ से रोकता है। लेकिन शायद आपको इसे संदेश में जोड़ना चाहिए? –