दिलचस्प पोस्ट
PHP में MySQL कॉलम की राशि प्राप्त करें "आर" सामग्रियों की खोज कैसे करें? निर्भरता इंजेक्शन (डीआई) को अंगार 2 में सही ढंग से कैसे उपयोग करें? आईओएस एप के भीतर से बारकोड जेनरेशन Div () पुस्तकालय समारोह का उद्देश्य क्या है? UIView के बजाय UIPickerView में छूने का जवाब देना कैसे कस्टम सी # ऑब्जेक्ट में JSON ऑब्जेक्ट को कनवर्ट करने के लिए? एक NSMutableDictionary सॉर्ट करें 2 कॉलम पर आधारित डुप्लिकेट कॉलम जोड़े, सॉर्ट पंक्तियाँ निकालें जावास्क्रिप्ट के साथ चयन करने के लिए विकल्प जोड़ना PHP को 0 को स्ट्रिंग के बराबर क्यों मानता है? MySQL विदेशी कुंजी त्रुटि 1005 त्रुटि 150 मैं SCATA और SPARK में एक ही कॉलम मूल्यों के साथ डेटाफ्रेम को कैसे अलग कर सकता हूं सी # के लिए सरल असुरक्षित दो-तरफ़ा "अस्पष्ट" जब flag -stdlib = libstdc ++ का उपयोग करना आवश्यक है?

विशिष्ट प्रतिबद्ध के लिए एक 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 बदलें।