git - मेरा पुल अनुरोध विलय कर दिया गया है, आगे क्या करना है?




github (2)

आगे क्या करना है: नई सुविधाओं का योगदान करना या अपनी समर्पित शाखाओं में अन्य बग फिक्स करना (केवल आपके कांटे पर धक्का देना)।

मतलब है कि आपका कांटा रहता है, लेकिन आपके कांटे के भीतर की शाखाएं आ सकती हैं और जा सकती हैं।

यदि आप आगे योगदान करने की योजना नहीं बना रहे हैं तो आप कांटा भी हटा सकते हैं, लेकिन यह 'रेपॉजिटरीज' में योगदान करने वाली संबंधित प्रविष्टि को हटा देगा ।

यह आसान है:

  • अपनी फोर्क शाखा (वास्तव में, अब यह आपके लिए हटा दी गई है ) को अपने कांटा पर हटाएं (और अपने स्थानीय क्लोन रेपो में: देखें " स्थानीय रूप से और दूरस्थ रूप से गिट शाखा हटाएं ")
  • git pull upstream master (यदि master वह शाखा थी जिसमें आपका फिक्स एकीकृत किया गया था: विलय एक तेज़ आगे होगा): इस बिंदु पर कोई रिबेस की आवश्यकता नहीं है।
  • अपने अपडेट किए गए स्थानीय master (अब upstream master से नवीनतम के साथ) पर एक फिक्स शाखा upstream master

हालांकि, भविष्य में कोई भी पुल अनुरोध सबमिट करने से पहले एक कदम कभी न भूलें:

अपस्ट्रीम गंतव्य शाखा से अपनी वर्तमान शाखा ( fix ) को पहले रिबेस करें

( upstream मूल रेपो है जिसे आपने फोर्क किया है: देखें " जिथब में मूल और अपस्ट्रीम के बीच क्या अंतर है ")

मूल रेपो ("अपस्ट्रीम") पर कुछ भी वापस सबमिट करने से पहले, आपको यह सुनिश्चित करना होगा कि आपका काम मूल मूल रेपो से नवीनतम के शीर्ष पर आधारित है (या पुल-अनुरोध का परिणाम एक बार लागू होने पर फास्ट-फॉरवर्ड विलय नहीं होगा upstream रेपो पर वापस)।
उदाहरण के लिए, " github में साझा repos पर पुल अनुरोधों के प्रबंधन के लिए वर्कफ़्लो देखें"।

दूसरे शब्दों में, जब आप व्यस्त फिक्सिंग सामान व्यस्त होते हैं, तो upstream विकसित हो सकता है (इसमें नई प्रतिबद्धताएं होती हैं)। यह सुनिश्चित करने के लिए कि आपके काम अभी भी upstream के नवीनतम के साथ संगत हैं, आपको अपस्ट्रीम से उस नवीनतम कार्य के शीर्ष पर अपने फ़िक्स को फिर से चलाने की आवश्यकता है।

टिप्पणी में पूछते हैं:

मैंने upstream से मास्टर तक खींचा और विलय कर लिया है, अब क्या?

यदि आपने अपने हालिया पुल अनुरोध के बाद कोई नया फ़िक्स नहीं बनाया है, तो ऊपर देखें (हटाए गए और अपने अपडेट किए गए master शीर्ष पर एक नई शाखा fix को फिर से बनाएं)।

यदि आपने अपने पुल अनुरोध के बाद और कोई काम किया है, तो मैं upstream से विलय नहीं करूँगा अगर मैं एक नया पुल अनुरोध करना चाहता हूं: मैं खींचूंगा और रिबेस कर दूंगा :

git pull --rebase upstream master

इस तरह, मेरे सभी नए स्थानीय काम को हाल ही में upstream master कॉमिट्स (मेरे स्थानीय रेपो में लाया गया) के शीर्ष पर फिर से चलाया गया है, यह मानते हुए कि master लक्ष्य शाखा है जो मेरे भविष्य के पुल अनुरोध को एकीकृत करेगी।

तब मैं अपने स्थानीय काम को ' origin ' पर धक्का दे सकता हूं, जो upstream गिटहब पर मेरा कांटा है।
और गिटहब पर मेरे कांटे से, मैं सुरक्षित रूप से पुल अनुरोध कर सकता हूं, यह जानकर कि यह किसी भी मर्ज रिज़ॉल्यूशन की आवश्यकता के बिना upstream केवल नई प्रतिबद्धताओं को जोड़ देगा: upstream रेपो में उन नए कामों को विलय करने का मतलब एक सरल फास्ट-फॉरवर्ड विलय होगा।

एक git pull --rebase जिस पर आप अपनी शाखा (वर्तमान में चेक आउट) fix शाखा को git pull --rebase करना चाहते हैं, को शाखा निर्दिष्ट किए बिना, काम नहीं करेगा:

वह ( git pull --rebase ) कहते हैं:

You asked to pull from the remote '`upstream`', but did not specify a branch. 

क्या मुझे आखिर में मास्टर जोड़ना चाहिए? और यह क्या करेगा ?, क्या यह मेरी fix शाखा को हटा देगा?

हां, आप शाखा निर्दिष्ट कर सकते हैं जो पुल अनुरोध का लक्ष्य होगा, उदाहरण के लिए ' master '।
यह आपकी fix शाखा को नहीं हटाएगा, लेकिन इसे आपके रेपो में प्राप्त अपस्ट्रीम master शीर्ष पर फिर से चलाएगा।

मैंने हाल ही में गिटहब से एक परियोजना में भाग लिया। मैंने निम्नलिखित किया:

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

यह पहली बार था जब मैंने किसी अन्य कोड पर काम किया, इसलिए मुझे नहीं पता कि क्या करना है। अब मेरा पुल अनुरोध लेखक द्वारा मूल रेपो / प्रोजेक्ट में विलय कर दिया गया है।

मुझे आगे क्या करना चाहिये? क्या मुझे शाखा हटा दी जानी चाहिए? क्या मुझे शाखा को मर्ज करना चाहिए? और कुछ?

अतिरिक्त जानकारी:

मूल परियोजना में एक शाखा है।

मेरे पास नवीनतम रेपो बनाने के लिए नवीनतम अपडेट प्राप्त करने के लिए अपस्ट्रीम सेट भी है। (मैंने इसे ऐसा किया) :

git remote add upstream https://path/to/original/repo.git

और मुझे इस तरह के अपडेट मिलते हैं:

git fetch upstream

सबसे पहले, गितूब पर एक परियोजना में आपके पहले योगदान के लिए बधाई।

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





github