आगे क्या करना है: नई सुविधाओं में योगदान देना या अपनी स्वयं की समर्पित शाखाओं में अन्य कीड़े को ठीक करना (केवल आपके कांटे पर धकेल दिया जाना)।
मतलब आपका कांटा ठहर जाता है, लेकिन आपके कांटे के भीतर की शाखाएँ आ और जा सकती हैं।
यदि आप आगे योगदान करने की योजना नहीं बना रहे हैं, तो आप कांटा भी निकाल सकते हैं, लेकिन यह 'आपके द्वारा योगदान किए गए रिपॉजिटरी' में संबंधित प्रविष्टि को हटा देगा ।
यह आसान है:
- अपनी
fixशाखा को हटाएं (वास्तव में, यह अब आपके लिए हटा दिया गया है ) अपने कांटे पर (और अपने स्थानीय क्लोन किए गए रेपो में: " स्थानीय और दूरस्थ रूप से एक गिट शाखा को हटाएं " देखें )
git pull upstream master(यदि masterवह शाखा थी जिसमें आपका फिक्स एकीकृत किया गया है: मर्ज एक तेजी से आगे होगा): इस बिंदु पर किसी भी छूट की आवश्यकता नहीं है।
- अपने अद्यतन किए गए स्थानीय
master(अब नवीनतम से upstream master) के शीर्ष पर एक फिक्स शाखा बनाएं ।
हालांकि, भविष्य के किसी भी अनुरोध को जमा करने से पहले एक कदम कभी न भूलें :
fixअपस्ट्रीम डेस्टिनेशन ब्रांच से पहले अपनी करंट ब्रांच ( ) को रिबास करें
( upstreamमूल रेपो होने के नाते आपने देखा: " जीथब में मूल और अपस्ट्रीम के बीच अंतर क्या है " देखें )
मूल रेपो ("अपस्ट्रीम") में कुछ भी सबमिट करने से पहले, आपको यह सुनिश्चित करने की आवश्यकता है कि आपका काम नवीनतम के शीर्ष पर आधारित है, जो मूल रेपो (या पुल-रिक्वेस्ट) के लागू होते ही तेजी से आगे विलय में परिणाम नहीं करेगा। upstreamरेपो पर वापस )।
उदाहरण के लिए, " जीथब में साझा भंडार पर पुल अनुरोधों के प्रबंधन के लिए वर्कफ़्लो "।
दूसरे शब्दों में, upstreamआप सामान को ठीक करने में व्यस्त हो सकते हैं (उस पर नए तरीके से काम किया जा सकता है)। आपको यह सुनिश्चित करने की आवश्यकता है कि ऊपर से उस नवीनतम कार्य के लिए आपके सुधारों को फिर से सुनिश्चित करें कि आपके कमिट अभी भी नवीनतम के अनुरूप हैं upstream।
ओपी संतोष कुमार पूछता टिप्पणी में :
मैंने upstreamमास्टर से खींचा और विलय किया है, अब क्या?
यदि आपने अपने हाल के पुल अनुरोध के बाद से कोई नया सुधार नहीं किया है, तो ऊपर देखें ( fixअपने अपडेट के शीर्ष पर एक नई शाखा को हटाएं और पुन: बनाएँ master)।
यदि आपने अपने पुल अनुरोध के बाद से कोई और काम किया है, upstreamतो यदि मैं एक नया पुल अनुरोध करना चाहता हूं , तो मैं इससे विलीन नहीं होऊंगा : मैं पुल और रिबेस करूंगा :
git pull --rebase upstream master
इस तरह, मेरे सभी नए स्थानीय कार्यों को सबसे हाल के upstream masterकॉमेट्स (मेरे स्थानीय रेपो में लाया गया) के शीर्ष पर फिर से दोहराया गया है , यह मानते हुए कि masterलक्ष्य शाखा है जो मेरे भविष्य के पुल अनुरोध को एकीकृत करेगी।
फिर मैं अपने स्थानीय कार्य को ' origin' पर धकेल सकता हूं , जो कि GitHub पर मेरा कांटा है upstream।
और GitHub पर मेरे कांटे से, मैं सुरक्षित रूप से एक पुल अनुरोध कर सकता हूं, यह जानकर कि यह केवल नए upstreamमर्ज जोड़ देगा बिना किसी मर्ज रिज़ॉल्यूशन की आवश्यकता के: upstreamरेपो में उन नए कॉमे को मर्ज करने का मतलब होगा एक सरल फास्ट-फॉरवर्ड मर्ज।
एक git pull --rebaseजिनमें से आप अपने rebase करना चाहते हैं शीर्ष पर शाखा निर्दिष्ट किए बिना (अभी चेक आउट) fixशाखा काम नहीं होगा:
वह ( git pull --rebase) कहता है:
You asked to pull from the remote '`upstream`', but did not specify a branch.
क्या मुझे अंतिम में मास्टर को जोड़ना चाहिए? और यह क्या करेगा?, क्या यह मेरी fixशाखा को हटा देगा ?
हां, आप उस शाखा को निर्दिष्ट कर सकते हैं जो पुल अनुरोध का लक्ष्य होगी, उदाहरण के लिए ' master'।
यह आपकी fixशाखा को नहीं हटाएगा, लेकिन masterआपके रेपो में प्राप्त अपस्ट्रीम के शीर्ष पर इसे फिर से चलाएगा।
:)