खोज…


परिचय

एक चेरी-पिक उस पैच को ले जाती है जिसे एक कमिट में पेश किया गया था और आप जिस शाखा पर वर्तमान में हैं उस पर इसे फिर से लगाने की कोशिश करते हैं।

स्रोत: Git SCM बुक

वाक्य - विन्यास

  • git चेरी-पिक [--edit] [-n] [-m पैरेंट-नंबर] [-s] [-x] [--ff] [-S [की-आईडी]] कमिट ...
  • git चेरी-पिक - कॉन्टिन्यू
  • git चेरी-पिक --quit
  • git चेरी-पिक --abort

पैरामीटर

पैरामीटर विवरण
-ए, --डिट इस विकल्प के साथ, git cherry-pick आपको कमिट करने से पहले प्रतिबद्ध संदेश को संपादित करने देगा।
-एक्स कमिट करते समय, यह बताने के लिए कि यह परिवर्तन चेरी से उठाया गया था, यह इंगित करने के लिए मूल प्रतिबद्ध संदेश के लिए "चेरी (कमिट से उठाया गया ...)" कहते हैं। यह केवल संघर्ष के बिना चेरी पिक्स के लिए किया जाता है।
--ff यदि वर्तमान HEAD चेरी-पिक'ड कमिट के माता-पिता के समान है, तो इस कमिट के लिए तेजी से आगे प्रदर्शन किया जाएगा।
--जारी रखें .गित / सीक्वेंसर की जानकारी का उपयोग करके संचालन जारी रखें। एक असफल चेरी-पिक या रिवर्ट में संघर्षों को हल करने के बाद जारी रखने के लिए इस्तेमाल किया जा सकता है।
--quit वर्तमान संचालन के बारे में भूल जाओ। एक असफल चेरी-पिक या रिवर्ट के बाद सीक्वेंसर राज्य को साफ़ करने के लिए इस्तेमाल किया जा सकता है।
--abort ऑपरेशन रद्द करें और पूर्व-अनुक्रम स्थिति पर वापस लौटें।

एक शाखा से दूसरी शाखा में कमिट करना

git cherry-pick <commit-hash> एक नई प्रतिबद्धताओं को रिकॉर्ड करते हुए, मौजूदा प्रतिबद्ध में दूसरी शाखा में किए गए परिवर्तनों को लागू करेगा। अनिवार्य रूप से, आप शाखा से शाखा तक प्रतिलिपि बना सकते हैं।

निम्नलिखित पेड़ को देखते हुए (स्रोत)

dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 [master]
           \
            76cada - 62ecb3 - b886a0 [feature]

मान लीजिए कि हम b886a0 को मास्टर ( 5a6057 शीर्ष पर) में कॉपी करना चाहते हैं।

हम दौड़ सकते हैं

git checkout master
git cherry-pick b886a0

अब हमारा पेड़ कुछ इस तरह दिखेगा:

dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 - a66b23 [master]
           \
            76cada - 62ecb3 - b886a0 [feature]

जहां नए a66b23 में b886a0 (लेकिन एक अलग अभिभावक) के रूप में समान सामग्री (स्रोत भिन्न, प्रतिबद्ध संदेश) है। ध्यान दें कि चेरी-पिकिंग केवल उस कमिट में बदलाव करेगी ( b886a0 इस मामले में) सुविधा शाखा में सभी परिवर्तन नहीं हैं (इसके लिए आपको या तो रिबासिंग या विलय का उपयोग करना होगा)।

एक शाखा से दूसरी शाखा में आवागमन की एक प्रतिलिपि बनाना

git cherry-pick <commit-A>..<commit-B> ए और अप करने के बाद और वर्तमान में चेक-आउट शाखा के शीर्ष पर बी सहित हर प्रतिबद्ध करेगा।

git cherry-pick <commit-A>^..<commit-B> ए और प्रत्येक को वर्तमान में चेक-आउट शाखा के शीर्ष पर बी सहित और करने के लिए प्रतिबद्ध करेगा।

अगर चेरी-पिक की आवश्यकता है, तो जाँच करना

चेरी-पिक प्रक्रिया शुरू करने से पहले, आप जांच कर सकते हैं कि क्या आप जिस चेरी को चुनना चाहते हैं वह पहले से ही लक्ष्य शाखा में मौजूद है, जिस स्थिति में आपको कुछ भी करने की आवश्यकता नहीं है।

git branch --contains <commit> उन स्थानीय शाखाओं को सूचीबद्ध करता है जिनमें निर्दिष्ट प्रतिबद्ध होते हैं।

git branch -r --contains <commit> सूची में दूरस्थ ट्रैकिंग शाखाएं भी शामिल हैं।

अपस्ट्रीम पर लागू होने के लिए अभी तक कमिट्स खोजें

कमांड git cherry उन परिवर्तनों को दिखाता है जो अभी तक चेरी-पिक नहीं हुए हैं।

उदाहरण:

git checkout master
git cherry development

... और आउटपुट को इस तरह देखें:

+ 492508acab7b454eee8b805f8ba906056eede0ff
- 5ceb5a9077ddb9e78b1e8f24bfc70e674c627949
+ b4459544c000f4d51d1ec23f279d9cdb19c1d32b
+ b6ce3b78e938644a293b2dd2a15b2fecb1b54cd9

कमिट्स + साथ होने से development में अभी तक चेरी-उठाया नहीं गया development

वाक्य - विन्यास:

git cherry [-v] [<upstream> [<head> [<limit>]]]

विकल्प:

-v दिखाएँ SHA1s के बगल में विषयों के लिए प्रतिबद्ध।

समतुल्य खोज के लिए <अपस्ट्रीम> अपस्ट्रीम शाखा। HEAD के अपस्ट्रीम ब्रांच में चूक।

<सिर> कामकाजी शाखा; सिर करने के लिए चूक।

<सीमा> रिपोर्ट न करें (और शामिल) सीमा तक।

अधिक जानकारी के लिए git-cherry प्रलेखन देखें



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow