सामग्री पर जाएं
GitTree

गिट गाइड

गिट चेरी-पिक: किसी कमिट को दूसरी शाखा में कॉपी करें और विवादों को ठीक करें

संपूर्ण फीचर शाखा को मर्ज किए बिना एक बग फिक्स की आवश्यकता है? जानें कि चेरी-पिक कैसे काम करता है, सही गंतव्य चुनें, निर्भर प्रतिबद्धताओं को संभालें, और परिणाम की समीक्षा GitTree में करें।

द्वारा लिखित Kodmoraअद्यतन किया गया 7 मिनट पढ़ा

गिट चेरी-पिक आपकी वर्तमान शाखा में कमिट द्वारा पेश किए गए परिवर्तन को लागू करता है, आमतौर पर एक नई कमिट रिकॉर्ड करता है। उस शाखा पर स्विच करें जिसे फिक्स प्राप्त होना चाहिए, स्रोत कमिट का निरीक्षण करें, फिर git cherry-pick <commit> चलाएं। स्रोत शाखा यथावत रहती है. यदि पैच विरोध करता है, तो फ़ाइलों को हल करें और जारी रखें, या ऑपरेशन रोक दें।

कल्पना कीजिए कि feature/checkout पर एक भुगतान बग को ठीक कर दिया गया है, जबकि एक रिलीज़ शाखा को केवल उस सुधार की आवश्यकता है। संपूर्ण सुविधा को मर्ज करने से कार्य अधूरा रह सकता है. यह मार्गदर्शिका दिखाती है कि Git के साथ और GitTree के साथ, हम macOS, Windows और Linux के लिए जो क्लाइंट बनाते हैं, उसे ठीक से कैसे कॉपी किया जाए। दृश्य मार्ग का अतिरिक्त मूल्य परिवर्तन लागू करने से पहले गंतव्य शाखा और स्रोत अंतर की जाँच करना है।

चेरी-पिक बनाम मर्ज बनाम रिबेस: ऑपरेशन चुनें

ऑपरेशन को अपने लक्ष्य से मिलाएं
लक्ष्यऑपरेशनप्रभाव
एक शाखा और उसके वंश को एक साथ लाएँविलयशाखा इतिहास को एकीकृत करता है
विकास की एक पंक्ति को दूसरे आधार पर दोबारा चलाएँपुनः आधारदोबारा चलाए गए कमिट को दोबारा लिखता है
संपूर्ण शाखा के बिना चयनित परिवर्तन लाएँचेरी-पिकचयनित पैच को वर्तमान शाखा पर लागू करता है

चेरी-पिक बैकपोर्ट या गलत शाखा के लिए प्रतिबद्ध छोटे फिक्स के लिए उपयोगी है। यह दो शाखाओं को बार-बार विलय करने का एक खराब विकल्प है, जिन्हें अपना सारा काम साझा करना चाहिए: कॉपी किए गए परिवर्तनों को ट्रैक करना मुश्किल हो सकता है। संपूर्ण-शाखा वर्कफ़्लो के लिए, इंटरैक्टिव रीबेस और कमिट ग्राफ़ गाइड देखें।

किसी कमिट को दूसरी शाखा के लिए चेरी-पिक कैसे करें

एक साफ़ काम करने वाले पेड़ से शुरुआत करें। अधूरे संपादन प्रतिबद्ध करें या छिपाएँ; स्टैश गाइड उस रुकने और फिर से शुरू करने वाले वर्कफ़्लो को कवर करता है। यदि सुधार दूरस्थ है तो प्राप्त करें, फिर स्रोत इतिहास का निरीक्षण करें। नीचे शाखा के नाम और हैश उदाहरण हैं: उन्हें मौजूदा गंतव्य शाखा, अपनी स्रोत शाखा और वास्तविक फिक्स हैश से बदलें।

git status
git fetch origin
git log --oneline origin/feature/checkout
git show abc1234
git switch release/2.x
git status
git cherry-pick -x abc1234
git show --stat HEAD
git status

-x एक स्वच्छ चेरी-पिक के लिए संदेश में स्रोत प्रतिबद्ध संदर्भ जोड़ता है, जो सार्वजनिक बैकपोर्ट का पता लगाने में मदद करता है। रिमोट-ट्रैकिंग रेफरी अपडेट प्राप्त करें; यह आपकी चेक-आउट रिलीज़ शाखा को स्वचालित रूप से अपडेट नहीं करता है। पुष्टि करें कि गंतव्य उस संशोधन पर है जिसकी आपकी टीम अपेक्षा करती है। नई प्रतिबद्धता की समीक्षा करें और आगे बढ़ने से पहले रिलीज शाखा के परीक्षण चलाएं।

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

GitTree में दृष्टिगत रूप से चेरी-पिक कैसे करें

  1. गंतव्य शाखा खोलें

    उस शाखा की जाँच करें जिसे सुधार की आवश्यकता है। शुरू करने से पहले WIP पंक्ति की समीक्षा करें और संपादन प्रतिबद्ध या स्टैश करें।

  2. स्रोत प्रतिबद्धता का निरीक्षण करें

    ग्राफ़ में समाधान ढूंढें और उसका अंतर पढ़ें। जांचें कि क्या यह पहले के परिवर्तनों को मानता है जो गंतव्य में शामिल नहीं हैं।

  3. चेरी-पिक कमिट चुनें

    सोर्स कमिट पर राइट-क्लिक करें और चेरी-पिक कमिट चुनें। कई कमिट के लिए, पंक्तियों का चयन करने के लिए Ctrl-क्लिक या कमांड-क्लिक का उपयोग करें, फिर चेरी-पिक कमिट का उपयोग करें; शुरू करने से पहले निर्भरता और ऑर्डर की जाँच करें।

  4. यदि यह रुक जाए तो समाधान करें या निरस्त करें

    प्रभावित फ़ाइलें खोलने के लिए विरोध बैनर का उपयोग करें। परिणामों को हल करें और चरणबद्ध करें, फिर जारी रखें; सक्रिय संचालन को छोड़ने के लिए निरस्त करें चुनें।

  5. नए इतिहास की समीक्षा करें

    प्राप्तकर्ता शाखा के शीर्ष पर नई प्रतिबद्धता का निरीक्षण करें, प्रभावित व्यवहार का परीक्षण करें और आगे बढ़ने से पहले शाखा की दोबारा समीक्षा करें।

ग्राफ़ में एक कमिट का चयन होते हुए देखें, उसका मेनू खुलता है और चेरी-पिक कमिट चुना जाता है।
ग्राफ़ में एक कमिट का चयन होते हुए देखें, उसका मेनू खुलता है और चेरी-पिक कमिट चुना जाता है।GitTree प्रदर्शन भंडार के साथ इंटरफ़ेस।

विज़ुअल ग्राफ़ और विरोध संपादक के साथ इस वर्कफ़्लो का अनुसरण करने के लिए डाउनलोड करें GitTree। चेरी-पिक निजी रिपॉजिटरी सहित निःशुल्क योजना में शामिल है। वर्तमान आधिकारिक ऐप में साइन इन करें, अपना मौजूदा रिपॉजिटरी खोलें और उसी Git इतिहास का उपयोग करें जो आपके पास पहले से है।

चेरी-कई कमिट और रेंज चुनें

git cherry-pick abc1234 def5678
# A linear range, including the first commit:
git cherry-pick "abc1234^..def5678"

ये विकल्प उदाहरण हैं. एक स्पष्ट सूची आपूर्ति किए गए क्रम में प्रतिबद्धताओं को चुनती है; पहले अपेक्षित परिवर्तन करें. एक श्रेणी उन पंक्तियों का चयन करने के बजाय संशोधन-निर्धारित नियमों का पालन करती है जिन्हें आप ग्राफ़ में देखते हैं। A..B ए को बाहर करता है; जब A के माता-पिता हों, तो A^..B में सरल रैखिक अनुक्रम के लिए A शामिल होता है। शुरुआती बैकपोर्ट के लिए, मर्ज को पार करने वाली सीमा के बजाय एक स्पष्ट, समीक्षा की गई सूची को प्राथमिकता दें।

चेरी-पिक विवादों को हल करें और जारी रखें

When Git cannot apply the patch, it pauses. Run git status to identify the operation and conflicted paths, then edit the intended result. Use the conflict resolution guide for marker examples and the GitTree three-way editor. A syntactically clean resolution still needs tests: the destination may use different APIs.

git status
git diff --name-only --diff-filter=U
# Resolve the file, then check and stage it:
git diff --check
git add -- src/payment.ts
git diff --cached
git cherry-pick --continue

प्रत्येक समस्याग्रस्त प्रतिबद्धता के लिए एक अनुक्रम एक से अधिक बार रुक सकता है। यदि Git कहता है कि चयन खाली है, तो निरीक्षण करें कि क्या परिवर्तन पहले से मौजूद है या आपके संकल्प ने इसे हटा दिया है। git cherry-pick --skip का उपयोग केवल तभी करें जब आप जानबूझकर उस प्रतिबद्धता को छोड़ना चाहते हों; यह कोई सामान्य संघर्ष समाधान नहीं है.

गिट चेरी-पिक एबॉर्ट बनाम क्विट बनाम स्किप

सक्रिय चेरी-पिक के लिए आदेश
आदेशमतलब
git cherry-pick --continueसमाधान और स्टेजिंग के बाद जारी रखें
git cherry-pick --abortपूर्व-अनुक्रम स्थिति को रद्द करें और पुनर्स्थापित करें
git cherry-pick --skipवर्तमान प्रतिबद्धता को छोड़ें और क्रम जारी रखें
git cherry-pick --quitवर्तमान फ़ाइलों और कमिटों को यथास्थान छोड़ते समय ऑपरेशन स्थिति को भूल जाएं

कमिट को मर्ज करना, निर्भरता को गायब करना और एक पिक को पूर्ववत करना

मर्ज कमिट को मेनलाइन पैरेंट की आवश्यकता होती है क्योंकि यह एक से अधिक पैरेंट के सापेक्ष परिवर्तनों का प्रतिनिधित्व करता है। git cherry-pick -m 1 <merge> पर विचार करने से पहले इसका git show --no-patch --pretty=raw <merge> से निरीक्षण करें। अभिभावक 1 सार्वभौमिक रूप से सही नहीं है। GitTree आपसे माता-पिता का चयन करने के लिए कहता है; जिस इतिहास से आप तुलना करना चाहते हैं उसे देखकर चुनें, आदत से नहीं। मूल सामान्य फिक्स कमिट को चुनना अक्सर तर्क करना आसान होता है।

यदि कॉपी किया गया फिक्स गलत तरीके से बनता है, तो इसकी पूर्वापेक्षाओं का निरीक्षण करें: एक सहायक, स्कीमा परिवर्तन या कॉन्फ़िगरेशन पहले की प्रतिबद्धता में रह सकता है। एक सफल Git ऑपरेशन केवल यह साबित करता है कि पैच लागू किया गया है। प्राप्तकर्ता शाखा का परीक्षण करें. साझा इतिहास पर पूर्ण चयन को पूर्ववत करने के लिए, गंतव्य शाखा पर बनाई गई नई प्रतिबद्धता को वापस लाएं, मूल स्रोत हैश को नहीं। अप्रकाशित कार्य के लिए, शाखा इतिहास को स्थानांतरित करने से पहले Git गलतियों को पूर्ववत करें में रीसेट और पुनर्प्राप्ति विकल्पों की समीक्षा करें।

अक्सर पूछे जाने वाले प्रश्न

क्या चेरी-पिक किसी कमिट को स्थानांतरित या कॉपी करता है?

यह वर्तमान शाखा में परिवर्तन लागू करता है, आमतौर पर एक नई प्रतिबद्धता बनाता है। यह स्रोत प्रतिबद्धता को नहीं हटाता है या स्रोत शाखा को स्थानांतरित नहीं करता है।

मुझे सबसे पहले किस शाखा की जाँच करनी चाहिए?

गंतव्य की जाँच करें: वह शाखा जिसे परिवर्तन प्राप्त होना चाहिए। गंतव्य शाखा की जांच करने के बाद ही सोर्स कमिट का चयन करें।

चेरी-पिक में संघर्ष क्यों होता है?

पैच को एक अलग संदर्भ में लागू किया जा रहा है। हो सकता है कि गंतव्य ने उन्हीं पंक्तियों को संपादित या हटा दिया हो, या पूर्व अपेक्षित परिवर्तनों का अभाव हो।

क्या मैं प्रतिबद्धता के बिना चेरी-पिक कर सकता हूँ?

हाँ। गिट चेरी-पिक --नो-कमिट सामान्य कमिट किए बिना कार्यशील ट्री और इंडेक्स में चयनित परिवर्तन लागू करता है। स्वयं समीक्षा करें और परिणाम प्रस्तुत करें।

क्या GitTree में चेरी-पिक मुफ़्त है?

हाँ। नि:शुल्क योजना में निजी रिपॉजिटरी के लिए यह स्थानीय Git ऑपरेशन भी शामिल है। वर्तमान आधिकारिक बिल्ड के लिए साइन-इन की आवश्यकता होती है।

सूत्र

अन्य उत्पादों के बारे में दावों की जाँच उनके आधिकारिक पेजों के विरुद्ध 28 अक्टूबर 2026 पर की गई। कीमतें और सुविधाएँ बदलती हैं; विक्रेताओं के पृष्ठ सत्य का स्रोत हैं।