पुल अनुरोध की आधार शाखा कैसे बदलें?


79

मैंने एक विशेष दूरस्थ शाखा GitHub पर परियोजना पर एक पुल अनुरोध बनाया। कुछ समय बाद, दूरस्थ शाखा को हटा दिया गया था।

मैं किसी अन्य शाखा (विशेष रूप से master) को इंगित करने के लिए पुल अनुरोध को कैसे बदल सकता हूं ?


3
इसके अलावा अनुरोध किया गया: github.com/isaacs/github/issues/18 , GitHub को भेजा गया संदेश, और "हम अपने आंतरिक बगट्रैक्टर उत्तर में जोड़ देंगे"।
सिरो संटिली 郝海东 冠状 iro i

जवाबों:


79

अपडेट किया गया: माइकल नोट के रूप में, यह अब संभव है :

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

Editआधार शाखा चयनकर्ता को प्रकट करने के लिए पुल अनुरोध के शीर्षक से बटन पर क्लिक करें ।

पुल अनुरोध शाखा के आधार को बदलने का एक एनिमेटेड उदाहरण।


पुराना उत्तर

आप नहीं कर सकते। बस एक नया पुल अनुरोध करें।


10
सीधे बिंदु पर, लेकिन सख्ती से सच नहीं है - इस जवाब को देखें ।
टॉम

7
अनिर्दिष्ट (और संभावित रूप से अनजाने में) एपीआई की कार्यक्षमता लाइन के नीचे उदासी के लिए एक नुस्खा है।
अंबर १

15
अनिर्दिष्ट एपीआई कार्यक्षमता पर भरोसा करने के बारे में किसी ने कुछ नहीं कहा । यह प्रश्न एकबारगी समस्या के समाधान के लिए कह रहा है, न कि स्थायी रूप से समर्थित चल रहे समाधान के लिए। भले ही, यह कहना कि "आप नहीं कर सकते" बस असत्य है।
टॉम

5
किसी भी तरह से अनिर्दिष्ट एपीआई अब टूट गया है (अन्य उत्तर की टिप्पणियाँ देखें), और यह बहुत दुख की बात है।
3

2
15.08.2016 तक आप कर सकते हैं। देखें माइकल का जवाब।
मलयास

35

हालांकि अनिर्दिष्ट, आप GitHub REST API का उपयोग करके ऐसा कर सकते हैं।

एपीआई के उपयोग को इस उत्तर में समझाया गया है , लेकिन मूल रूप से आप इस तरह का अनुरोध जारी कर सकते हैं:

$ curl --user "tom" \
       --request PATCH \
       --data '{"issue": "15", "head": "tom:new-branch", "base": "master"}' \
       https://api.github.com/repos/fred/fabproj/pulls

यह कांटे पर शाखा fred/fabprojका उपयोग करने के लिए रेपो पर जारी किए गए 15 द्वारा खींचे गए अनुरोध को बदल देगा ।new-branchtom/fabproj

संपादित करें: नोट: टिप्पणियों के अनुसार, उपरोक्त केवल एक मौजूदा मुद्दे के लिए एक नया पुल अनुरोध संलग्न करने के लिए है


1
यह काम करने के लिए नहीं मिल सका। इसने शिकायत की कि फ़ील्ड issueका गलत मान था, शायद यह सुझाव देते हुए कि आप अब पहले से ही तत्काल पुल अनुरोधों को बदल नहीं सकते हैं। शर्म आती है।
mxcl

1
क्या आप वाकई अपनी API कॉल सही हैं? जहाँ तक मैं बता सकता हूँ, यह अभी भी काम करना चाहिए, और (थोड़े) प्रलेखित है। डेवलपर देखें। Github.com/v3/pulls (और "एक पुल बनाने के लिए खोज करें" तब "वैकल्पिक इनपुट" देखें)
टॉम

14
मैंने आज फिर से इसकी कोशिश की है, और यह पुष्टि कर सकता हूं कि यह अब काम नहीं कर रहा है। मैं ऐसा करने के दूसरे तरीके की खोज की उम्मीद में REST API की खोज करता रहूँगा।
टॉम

1
डेवलपर डॉक्स के अनुसार अनुरोध प्रकार को पैट चाहिए। दूसरी बात यह है कि वर्तमान में सिर / आधार संशोधन समर्थित नहीं है। Ref: developer.github.com/v3/pulls/#update-a-pull-request
शेखर

4
हे जियान, टॉम ने 13 दिसंबर 12 को टिप्पणी में उल्लेख किया, यह (दुख की बात है!) अब काम नहीं कर रहा है ... जो शर्म की बात है, क्योंकि मैं आज इसका अच्छा उपयोग कर सकता था, लेकिन अफसोस!
पांडेनबेर्कर

19

08/15/2016 तक यह अब मूल रूप से जीथूब के माध्यम से संभव है :

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


यह कैसे काम करता है एक शीर्षक संपादित करें दबाता है, और फिर "आधार:" बटन प्रकट होता है, परिवर्तन के लिए तैयार है।
ऐनीएजाइल

2

मैं लक्ष्य शाखा बदल सकता था। यह सच है कि हम पीआर में लक्ष्य शाखा के नाम को संपादित नहीं कर सकते हैं। लेकिन चाल कुछ और करने के लिए शाखा का नाम बदलने के लिए है, और अपने लक्ष्य शाखा का नाम बदलकर पीआर में पहले से ही मौजूद है।

उदाहरण: मेरा पीआर नाम "देव-4.9" जैसा है। एक और शाखा है जिसे "क्यूए-4.9" नाम दिया गया है। मैं केवल इतना चाहता हूं कि "क्यूए-4.9" पीआर लक्ष्य शाखा होनी चाहिए। चरण: १ १) कुछ और "मूल-देव-४.१" का नाम "देव-4.9" फिर से शाखा

git checkout dev-4.9
git branch -w original-dev-4.9
git push origin original-dev-4.9

2) "देव-4.9" के लिए "क्यूए-4.9" फिर से नाम शाखा।

git checkout qa-4.9
git branch -w dev-4.9
git push origin dev-4.9 -f (force push to write entire branch to reflect dev-4.9)

3) पीआर url को ताज़ा करें और वहाँ पर परिलक्षित qa-4.9 में देखें।


1

एक पीआर से जुड़े सभी कमेंट्स को डिलीट ब्रांच से हटाने के बजाय:

  1. उसी नाम से स्थानीय स्तर पर फिर से शाखा बनाएँ और उसी सामग्री को जिस शाखा में आप विलय करना चाहते हैं;
  2. दूरस्थ शाखा को फिर से बनाने के लिए उस शाखा को धक्का दें; और फिर
  3. पीआर को शाखा में फिर से खोलें।

उदाहरण के लिए, आपके पास PR1 से शाखा 1 है, जिसे हटा दिया गया है। अब आप अपने मौजूदा पीआर पर टिप्पणियों को मास्टर करने और बनाए रखना चाहते हैं:

  1. गिट चेकआउट मास्टर
  2. पकड़ खींचो
  3. git चेकआउट -b Branch1
  4. जोर का धक्का
  5. अपने PR को फिर से शाखा 1 में खोलें
  6. जब शाखा 1 में विलय कर दिया जाए, तो मास्टर में विलय कर दें।

यह थोड़ा सा हैक है, लेकिन बहुत सारी टिप्पणियों को नष्ट करने से बेहतर है।


मैं अन्य पाठकों (या तो> = मेरे जैसा गूंगा) के लिए स्पष्टीकरण देने के लिए शुरू करने के साथ-साथ अनुसरण नहीं करता था, यह इस बात के लिए है कि यदि आप अपने पीआरओ को प्रस्तुत किए गए रेपो के नियंत्रण में हैं। मैं अपने पीआर को अपडेट करने का एक तरीका ढूंढ रहा था जिसे मैंने एक ओपन सोर्स प्रोजेक्ट में सबमिट किया है जिसे मैं नियंत्रित नहीं करता।
rtpHarry


-2

सिद्धांत रूप में...

आप गितुब आपी का उपयोग करने वाले हैं ।

उदाहरण: कर्ल के साथ पुल अनुरोध संपादित करें

curl --user "your_github_username" \
     --request PATCH \
     --data '{"title":"newtitle","body":"newbody",...}' \
     https://api.github.com/repos/:owner/:repo/pulls/:number

आप github डेवलपर डॉक में डेटा की अलग सूची पा सकते हैं

उदाहरण: मेरे पुल अनुरोध का नाम बदलें

curl --user "jeremyclement" \
     --request PATCH \
     --data '{"title":"allows the control of files and folders permissions."}' \
     https://api.github.com/repos/Gregwar/Cache/pulls/9

लेकिन व्यवहार में ...

ऐसा लगता है कि क्षेत्र head/labelऔर head/refसंपादन योग्य नहीं हैं। अभी के लिए, एकमात्र समाधान एम्बर का लगता है


यह वर्तमान उत्तरों में क्या जोड़ता है?
लीओ लैम

यह टॉम के बावजूद एम्बर प्रतिक्रिया की पुष्टि करता है।
हेक्सा जेर 22'15

2
जो इस बात की पुष्टि करता है कि इस उत्तर की आवश्यकता नहीं है। यह वर्तमान उत्तरों के लिए कुछ नहीं जोड़ता है। टॉम के जवाब में पहले से ही एक नोटिस है कि यह अब लागू नहीं होता है, और टिप्पणियों से यह संकेत मिलता है।
लेओ लाम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.