दिलचस्प पोस्ट
रनटाइम पर जावा संस्करण प्राप्त करना लक्ष्य = "_ रिक्त" बनाम लक्ष्य = "_ नया" एक निश्चित बिंदु पर निश्चित स्थिति स्क्रोलिंग रोकना? जावा: मैं कैसे जांच करूं कि कोई दिनांक एक निश्चित सीमा के भीतर है? सी में टेम्पलेट्स का सिमुलेशन (कतार डेटा प्रकार के लिए) संग्रहीत कार्यविधि और पैरामीटर के साथ डेटाएडैप्टर का उपयोग कैसे करें बैच फ़ाइल में वेरिएबल को कमांड आउटपुट असाइन करें सामग्री डिजाइन स्टाइल चेतावनी संवाद नहीं अपडेट करने वाले डेटा को संक्षिप्त करने के लिए स्क्रिप्ट स्थिति के आधार पर एक निश्चित मार्ग पर पुनर्निर्देशित करना एंड्रॉइड स्टूडियो में एवीडी एमुलेटर का आकार कैसे बदला जाए? बिना दबाए हुए अजगर में raw_input पासवर्ड को सहेजने के लिए मैं ब्राउज़र को कैसे प्रॉम्प्ट कर सकता हूं? डिवि बनाम टेबल्स या सीएसएस बनाम बेवकूफ होने के नाते हिंडले-मिलनर क्या है?

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

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

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

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

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