दिलचस्प पोस्ट
इस तरह से एक पुन: प्रयास करने योग्य कॉल को लागू करने के लिए स्काला तरीका क्या है? कक्षा android.support.v7.widget.Toolbar बढ़ती त्रुटि? मैं मूल प्रक्रिया की कार्यशील निर्देशिका कैसे सेट करूं? मैं एक महीने के आखिरी दिन कैसे प्राप्त करूं? @ स्कोप ("प्रोटोटाइप") सेम स्कोप नॉन बीन बनाना नहीं है धागा-सुरक्षित सूची <T> संपत्ति किसी रंग के ह्यू को संशोधित करने के लिए रंग मैट्रिक्स और रंग मैट्रिक्स कोलरफिल्टर का उपयोग समझना प्रपत्र प्रमाणन समयबाह्य बनाम सत्र कालबाह्य इस पटकथा पर एक स्क्रिप्ट चल रहा है, जिसका मतलब है धीमे चलना विभिन्न फोन / डिवाइस और ओएस संस्करणों पर एंड्रॉइड हेप आकार नोड.जेएस वर्तमान व्याप्ति के बाहर कैसे एक चर निर्धारित करें पाठ के लिए HTML इकाई कोड R: समूह की पहली पंक्ति वापस आ रही है addEventListener बनाम onclick एंड्रॉइड इम्यूलेटर पर ब्लूटूथ समर्थन

विशिष्ट प्रतिबद्ध के लिए एक git पैच जेनरेट करें

मुझे एक स्क्रिप्ट लिखना है जो SHA1 प्रतिबद्ध संख्याओं की सूची के लिए पैच बनाते हैं।

मैंने git format-patch <the SHA1> का उपयोग करने की कोशिश की, लेकिन उस SHA1 के बाद से प्रत्येक प्रतिबद्ध के लिए एक पैच जेनरेट किया कुछ सौ पैच उत्पन्न होने के बाद, मुझे प्रक्रिया को मारना पड़ा।

क्या विशिष्ट SHA1 के लिए केवल एक पैच उत्पन्न करने का कोई तरीका है?

Solutions Collecting From Web of "विशिष्ट प्रतिबद्ध के लिए एक git पैच जेनरेट करें"

प्रयत्न:

 git format-patch -1 <sha> 

किसी विशिष्ट sha1 हैश से सर्वोच्च प्रतिबद्धता से पैच को बनाने के लिए:

 git format-patch -<n> <SHA1> 

एक पैच फ़ाइल में सिर से पिछले 10 पैच:

 git format-patch -10 HEAD --stdout > 0001-last-10-commits.patch 

कहें कि आप प्रतिबद्ध 2 के बाद आईडी 2 को चलाते हैं, तो आप चला सकते हैं:

 git diff 2 1 > mypatch.diff 

जहां 2 और 1 हैं SHA हैश

यह कमांड (जैसा कि पहले ही नाफ्तुली त्जी के द्वारा सुझाया गया है):

 git format-patch -1 HEAD 

विशिष्ट हैश या श्रेणी के साथ HEAD को बदलें

UNIX मेलबॉक्स प्रारूप को समान करने के लिए स्वरूपित नवीनतमतम के लिए पैच फ़ाइल उत्पन्न करेगा।

-<n> – सर्वोच्च प्रतिबद्धता से पैच तैयार करें

फिर आप पैच फ़ाइल को मेलबॉक्स प्रारूप में पुन: लागू कर सकते हैं:

 git am -3k 001*.patch 

देखें: man git-format-patch

 git format-patch commit_Id~1..commit_Id git apply patch-file-name 

फास्ट और सरल समाधान

यदि आप यह सुनिश्चित करना चाहते हैं कि विशिष्ट प्रतिबद्ध के शीर्ष पर एक सिंगल कमिट पैच लागू किया जाएगा, तो आप नए git 2.9 (जून 2016) विकल्प git format-patch --base उपयोग कर सकते हैं

 git format-patch --base=COMMIT_VALUE~ -M -C COMMIT_VALUE~..COMMIT_VALUE # or git format-patch --base=auto -M -C COMMIT_VALUE~..COMMIT_VALUE # or git config format.useAutoBase true git format-patch -M -C COMMIT_VALUE~..COMMIT_VALUE 

देखें बीबी 52995 , 3 डी 6651 कमिट करें , एफआइएबी 86 कमिट करें , डिएड 2 सी 0 9 (26 अप्रैल 200 9) को झियाओलंग ये (“) द्वारा करें ।
( जूनो सी gitster द्वारा मर्ज किए गए – gitster – में gitster सी 0 एफएफ में , 23 मई 2016)

format-patch : आधार पेड़ की जानकारी को रिकॉर्ड करने के लिए ' --base ' विकल्प जोड़ें

रखरखाव या तीसरे पक्ष के परीक्षक पैच श्रृंखला को लागू करने के लिए सटीक आधार पेड़ जानना चाह सकते हैं। बेस ट्री जानकारी को रिकॉर्ड करने के लिए गिट प्रारूप-पैच को एक ' --base ' विकल्प --base और पहले संदेश के अंत में इसे जोड़ दें (श्रृंखला में कवर पत्र या पहले पैच)।

बेस ट्री की जानकारी में "बेस कमिट" शामिल है, जो एक प्रसिद्ध प्रतिबद्धता है जो कि परियोजना के इतिहास के एक स्थिर हिस्से का हिस्सा है, बाकी सब काम करता है, और शून्य या अधिक "पूर्व शर्त पैच", जो प्रसिद्ध हैं पैच में पैच जो अभी तक "बेस कमिट" का हिस्सा नहीं है जिसे पैच लागू करने के पहले टोपोलॉजिकल ऑर्डर में "बेस कमिट" के ऊपर लागू करने की आवश्यकता होती है।

"बेस कमिट" को " base-commit: " के रूप में दिखाया गया है, उसके बाद उसके ऑब्जेक्ट नाम के 40-हेक्साइन का नाम दिया गया है।
" git patch-id --stable " कमांड के माध्यम से पैच को पास करके 40-हेक्स "पैच आईडी" के बाद एक "पूर्वापेक्षित पैच" को " prerequisite-patch-id: " के रूप में दिखाया गया है।

विशिष्ट प्रतिबद्ध से पथ उत्पन्न करने के लिए (अंतिम प्रतिबद्ध नहीं):

 git format-patch -M -C COMMIT_VALUE~1..COMMIT_VALUE 

विशिष्ट SHA1 के लिए केवल पैच जेनरेट करने का तरीका क्या है?

यह काफी आसान है:

विकल्प 1. git show commitID > myFile.patch

विकल्प 2. git commitID~1..commitID > myFile.patch

नोट: वास्तविक commit आईडी (SHA1 प्रतिबद्ध कोड) के साथ commitID बदलें।