git - चेरी-गिट के साथ एक प्रतिबद्धता का मतलब क्या है?




cherry-pick git-cherry-pick (4)

हाल ही में, मुझे चेरी लेने के लिए कहा गया है। लेकिन मुझे नहीं पता कि इसका क्या अर्थ है। तो cherry picking गिट में एक प्रतिबद्धता cherry picking क्या मतलब है? आप इसे कैसे करते हो?


आप सोच सकते हैं कि एक चेरी रीबेस के समान ही चुनता है, या इसके बजाय इसे रीबेस की तरह प्रबंधित किया जाता है। इसके द्वारा, मेरा मतलब है कि यह मौजूदा प्रतिबद्धता लेता है और आरंभिक बिंदु के रूप में, वर्तमान में आप जिस शाखा में हैं, उसके रूप में इसे पुन: उत्पन्न करता है।

एक rebase एक प्रतिबद्धता लेता है जिसमें माता-पिता एक्स होता है और प्रतिबद्धता को पुन: उत्पन्न करता है जैसे कि वास्तव में यह मूल माता होता है, और यह वही है जो cherry-pick करता है।

चेरी पिक इस बात के बारे में अधिक है कि आप कैसे काम करते हैं। pull (रिबेस) के साथ, गिट आपकी स्थानीय गतिविधियों को आपकी शाखा में खींचने के शीर्ष पर पुन: उत्पन्न करता है, लेकिन cherry-pick आप स्पष्ट रूप से कुछ प्रतिबद्धताओं का चयन करते हैं, और स्पष्ट रूप से इसे अपनी वर्तमान शाखा के शीर्ष पर पुन: उत्पन्न करते हैं।

तो जिस तरह से आप इसे अलग करते हैं, लेकिन हुड के तहत वे बहुत ही समान ऑपरेशन होते हैं - कामों का पुनर्जन्म।


गिट में चेरी चुनने का अर्थ है एक शाखा से एक प्रतिबद्धता चुनना और इसे दूसरे पर लागू करना।

यह अन्य तरीकों के विपरीत है जैसे merge और rebase जो आम तौर पर कई अन्य शाखाओं पर लागू होते हैं।

  1. सुनिश्चित करें कि आप उस शाखा में हैं जहां आप प्रतिबद्धता लागू करना चाहते हैं।

    git checkout master

  2. निम्नलिखित निष्पादित करें:

    git cherry-pick <commit-hash>

ध्यान दें:

  1. यदि आप सार्वजनिक शाखा से चेरी चुनते हैं, तो आपको इसका उपयोग करने पर विचार करना चाहिए

    git cherry-pick -x <commit-hash>

    यह एक मानक प्रतिबद्ध संदेश उत्पन्न करेगा। इस तरह, आप (और आपके सहकर्मी) अभी भी प्रतिबद्धता की उत्पत्ति का ट्रैक रख सकते हैं और भविष्य में संघर्ष विलय से बच सकते हैं।

  2. यदि आपके पास प्रतिबद्धता से जुड़ी नोट्स हैं तो वे चेरी-पिक का पालन नहीं करते हैं। उन्हें भी लाने के लिए, आपको इसका उपयोग करना होगा:

    git notes copy <from> <to>

अतिरिक्त लिंक:


चेरी-पिक एक जीआईटी सुविधा है। यदि कोई एक शाखा में एक लक्षित शाखा में विशिष्ट प्रतिबद्धता करना चाहता है, तो चेरी-पिक का उपयोग किया जाता है।
गिट चेरी-पिक कदम नीचे दिए गए हैं।

  1. चेकआउट (स्विच) लक्ष्य शाखा।
  2. git cherry-pick <commit id>
    

    यहां आईडी आईडी किसी अन्य शाखा की गतिविधि आईडी है। उदाहरण के लिए।

    git cherry-pick 9772dd546a3609b06f84b680340fb84c5463264f
    
  3. शाखा को लक्षित करने के लिए धक्का

https://git-scm.com/docs/git-cherry-pick


यह उद्धरण लिया गया है; गिट के साथ संस्करण नियंत्रण (वास्तव में महान पुस्तक, यदि आप गिट में दिलचस्पी रखते हैं तो मैं इसे खरीदने के लिए प्रोत्साहित करता हूं)

संपादित करें: चूंकि यह उत्तर अभी भी इंप्रेशन प्राप्त कर रहा है, इसलिए मैं इसके बारे में एक्शन वीडियो ट्यूटोरियल में बहुत अच्छा जोड़ना चाहता हूं:

यूट्यूब: गिट चेरी-पिक का परिचय

गिट चेरी-पिक का उपयोग करना कमांड गिट चेरी-पिक प्रतिबद्ध वर्तमान शाखा पर नामित प्रतिबद्धता द्वारा पेश किए गए परिवर्तनों को लागू करता है। यह एक नई, विशिष्ट प्रतिबद्धता पेश करेगा। कड़ाई से बोलते हुए, गिट चेरी-पिक का उपयोग करके मौजूदा इतिहास को एक भंडार में परिवर्तित नहीं किया जाता है; इसके बजाय, यह इतिहास में जोड़ता है। अन्य गिट ऑपरेशंस के साथ जो एक अंतर लागू करने की प्रक्रिया के माध्यम से परिवर्तन पेश करते हैं, आपको दिए गए प्रतिबद्धता में परिवर्तनों को पूरी तरह से लागू करने के लिए संघर्षों को हल करने की आवश्यकता हो सकती है । कमांड गिट चेरी-पिक आमतौर पर एक शाखा से एक शाखा में विशेष शाखाओं को एक अलग शाखा में पेश करने के लिए प्रयोग किया जाता है। एक सामान्य उपयोग है कि आगे की ओर या बैक-पोर्ट एक रखरखाव शाखा से विकास शाखा में काम करता है।

$ git checkout rel_2.3
$ git cherry-pick dev~2 # commit F, above

पहले:

बाद:







git-cherry-pick