जवाबों:
15.08.2016 तक GitHub GUI के माध्यम से पुल अनुरोध की लक्ष्य शाखा को बदलने की अनुमति देता है। Edit
शीर्षक के बगल में क्लिक करें , फिर ड्रॉपडाउन से शाखा का चयन करें।
अब आप एक खुले पुल अनुरोध के आधार शाखा को बदल सकते हैं। आपके द्वारा पुल अनुरोध बनाने के बाद, आप आधार शाखा को संशोधित कर सकते हैं ताकि पुल शाखा में बदलावों की तुलना अलग शाखा से की जा सके। सही आधार शाखा के साथ एक नया खोलने के बजाय अपने मूल पुल अनुरोध की आधार शाखा को बदलकर, आप मूल्यवान कार्य और चर्चा कर सकेंगे।
सबमिटर तब बदल सकता है जब वे पुल अनुरोध जारी करते हैं, लेकिन एक बार जब वे इसे जारी करते हैं तो आप इसे बदल नहीं सकते हैं।
दूसरी ओर, आप मैन्युअल रूप से उनकी शाखा और पुश को मर्ज कर सकते हैं, जिसे मैं अर्ध-नियमित रूप से गलत तरीके से खींचने के अनुरोध के लिए करता हूं।
आप पुल अनुरोध के घटकों के साथ काम करने में सहायक hub
मणि पा सकते हैं ।
वह मणि मैनुअल प्रक्रिया को लपेटता है, जो है:
git checkout ${target_branch} && git merge ${remote}/${branch}
git push origin ...
git merge --no-ff ...
उनके उत्तर में @GuillermoMansilla उल्लेख के रूप में उपयोग करने की सलाह दूंगा।
अन्य उत्तरों द्वारा उल्लिखित हब रत्न का उपयोग करने का एक विकल्प स्थानीय स्तर पर पुल अनुरोधों को मर्ज करने के लिए कमांड लाइन का उपयोग करना है , जो आपको करने की अनुमति देता है:
$ git fetch origin
$ git checkout *target_branch*
$ git merge pr/XXX
$ git push origin *target_branch*
यदि आप पहली बार अपनी .git/config
फ़ाइल में निम्न पंक्ति जोड़ते हैं तो केवल ऊपर दिए गए कमांड सीधे काम करते हैं :
fetch = +refs/pull/*/head:refs/remotes/symbolic_name_origin_or_upstream/pr/*
जो कुछ भी करता है वह आपको सभी पुल अनुरोधों को डाउनलोड करने की अनुमति देता है । चूंकि विशाल रेपो के लिए वांछित नहीं हो सकता है, GitHub ने git fetch origin pull/ID/head:BRANCHNAME
सिंटैक्स की सुविधा के लिए निर्देशों को संशोधित किया , जो कॉन्फ़िगरेशन फ़ाइल के संशोधन से बचा जाता है और केवल उस एकल पुल अनुरोध को डाउनलोड करता है।
यद्यपि आप मौजूदा पुल अनुरोध को नहीं बदल सकते हैं क्योंकि यह आपका नहीं है आप आसानी से एक नया बना सकते हैं यदि संबंधित स्रोत भंडार अभी भी मौजूद है - हाँ, भले ही वह किसी और का हो।
फिर जमाकर्ता के भंडार पर जाएं, फिर उसी आवागमन का उपयोग करके अपने भंडार में एक नया पुल अनुरोध बनाएं, लेकिन सुनिश्चित करें कि आपने सही लक्ष्य शाखा को सही तरीके से सेट किया है।
फिर अपने स्वयं के भंडार पर वापस जाएं और नए पुल अनुरोध को स्वीकार करें। देखा!
डैनियल पिट्समैन के समाधान के साथ कुछ भी गलत नहीं है, हालांकि मैं उन मर्जों को "नो फास्ट फॉरवर्ड" के रूप में मानता हूं, अर्थात: चरण संख्या 3 के लिए बदलना:
git checkout ${target_branch} && git merge --no-ff ${remote}/${branch}
उपयोग करने से --no-ff
, इतिहास को पढ़ना आसान हो जाएगा। यह स्पष्ट रूप से कहेगा कि $n
कमिट से आया है $branch
, और यह आपके जीवन को भी आसान बना देगा यदि आपको उस शाखा में किए गए कुछ को वापस करने की आवश्यकता है।
इयोनोक के प्रश्न का उत्तर देने के लिए और एक अतिरिक्त टिप दें:
मर्ज करने के बाद, आपका गिट क्ली आपको एक संदेश लिखने के लिए प्रेरित करेगा, आम तौर पर एक सामान्य संदेश कुछ ऐसा कहेगा
दूरस्थ-ट्रैकिंग शाखा 'उपयोगकर्ता / उनकी शाखा' को अपनी शाखा में विलय करें
उस संदेश को संपादित करना सुनिश्चित करें और पुल अनुरोध संख्या का संदर्भ शामिल करें। वह है: (पुल अनुरोध संख्या मान 123 है)
दूरस्थ-ट्रैकिंग शाखा 'उपयोगकर्ता / उनकी शाखा' को अपनी शाखा में विलय करें
refs # 123 जो भी हल कर रहा है ...
इसलिए अगली बार जब आप अपने github मुद्दों / पुल-अनुरोध पृष्ठ पर जाएं और उस विशेष पुल अनुरोध की जांच करें, तो आप अपना संदेश लिंक के साथ देखेंगे जहां आपने विलय किया था।
यहाँ एक स्क्रीनशॉट है जो मेरा मतलब है।
ऐसा करने के लिए अपने रिपॉजिटरी के होम पेज पर जाएं, शाखाओं पर क्लिक करें, और मास्टर से डिफ़ॉल्ट ब्रांच को किसी अन्य चीज़ में, मेरे मामले में "देव" में बदल दें।
उसके बाद, जब भी कोई पुल अनुरोध बनाता है, तो merge
बटन मास्टर के बजाय "देव" में अनुरोध को स्वचालित रूप से मर्ज कर देगा।