क्या आप GitHub पर कमांड लाइन से पुल अनुरोध जारी कर सकते हैं?


298

ऐसा लगता है कि आपको एक पुल अनुरोध शुरू करने के लिए github.com के साथ बातचीत करनी होगी। क्या ऐसा है?


2
मुझे पुल अनुरोध करने के लिए उनके एपीआई में कुछ भी दिखाई नहीं दे रहा है: develop.github.com
एडम वंडेनबर्ग


1
आप किस ऑपरेटिंग सिस्टम पर ऐसा करने का इरादा कर रहे हैं?
इगोरगानापोलस्की

विंडोज 8 या 10 में यह कैसे करें?
मथिवानन केपी

मैंने इसके लिए एक बैश स्क्रिप्ट बनाई , अगर किसी को दिलचस्पी है।
एमवीआर

जवाबों:


114

अद्यतन : हब कमांड अब एक आधिकारिक गिटबब प्रोजेक्ट है और पुल अनुरोध बनाने का भी समर्थन करता है

मूल :

हब कमांड में जोड़ने के लिए विशेष रूप से उपयोगी चीज़ की तरह लगता है: http://github.com/defunkt/hub या github रत्न: http://github.com/defunkt/github-gem

मैं उन परियोजनाओं के लिए एक समस्या दर्ज करने का सुझाव देता हूं जो इसके लिए पूछ रही हैं। गितुब लोग बहुत संवेदनशील हैं।


8
गीथूब-मणि में युगों के लिए पुल अनुरोध बनाने की सुविधा शामिल थी gh pull-request [user] [branch]:।
होल्गर जस्ट

6
क्या यह काम करता है बिना गितुब ने रेपो को पहले पछाड़ दिया, अर्थात स्रोत रेपो के प्रत्यक्ष क्लोन से?
हरि करम सिंह

1
@ होलगर बस और किसी को भी: यह सिर्फ एक पुल अनुरोध का पाठ बनाता है और ऑन-जीथब फोर्क की आवश्यकता को पास नहीं करता है। मुझे अभी तक ऐसा कोई रास्ता नहीं मिला है। मैं जल्द ही नीचे पोस्ट की गई 'पुलर' उपयोगिता को आजमाना चाहता हूं। गीथूब-मणि से पूर्ण पुल-अनुरोध समर्थन का अनुरोध करने वाले लोगों के मुद्दे के लिए यहां देखें ।
मटौर

1
फास्ट कमांड का उपयोग करने के लिए hub:hub pull-request -m "message pull request" -b master -h your_branch
गुजरात संताना

पता नहीं क्यों यह ऊपर डॉक्स में उल्लेख नहीं है, लेकिन त्वरित पुल अनुरोध मर्ज के लिए, चेकआउट अपने गुरु शाखा करनाhub merge https://github.com/repo/pull/1
holmberd

53

Git अब एक subcommand के साथ जहाज करता है 'git request-pull' [-p] <start> <url> [<end>]

आप यहां डॉक्स देख सकते हैं

आपको यह उपयोगी लग सकता है लेकिन यह GitHub की विशेषता के समान नहीं है


7
@NathanBasanese यह पुल अनुरोध का वर्णन करने के लिए मानव पठनीय पाठ उत्पन्न करता है। Git डॉक्स और GitHub पुस्तक ई-मेल करने के लिए कहते हैं इस परियोजना मेंटेनर को, साझा रेपो पर लिखने के विशेषाधिकार वाले किसी (संभवतः GitHub)। अनुरक्षक आपके द्वारा भेजे गए पुल-अनुरोध पाठ की समीक्षा करता है (बजाय जीथब के ऑनलाइन पुल-अनुरोध प्रक्रिया का उपयोग करने के लिए)। वे git pullआपके द्वारा अपने स्थानीय क्लोन में अपने परिवर्तनों को मर्ज करने और जीथब तक इन परिवर्तनों को धकेलने के लिए आपके पुल अनुरोध में संकेतित url और शाखा का उपयोग कर सकते हैं ।
hobs

30

साथ हब कमांड लाइन आवरण उस Git से लिंक कर सकते हैं और फिर आप क्या कर सकते हैं git pull-request

हब के मैन पेज से:

   git pull-request [-f] [TITLE|-i ISSUE|ISSUE-URL] [-b BASE] [-h HEAD]
          Opens a pull request on GitHub for the project that the "origin" remote points to. The default head of the pull request is the current branch. Both base and head of the pull request can be explicitly given in one  of  the  following  formats:  "branch",  "owner:branch",
          "owner/repo:branch". This command will abort operation if it detects that the current topic branch has local commits that are not yet pushed to its upstream branch on the remote. To skip this check, use -f.

          If TITLE is omitted, a text editor will open in which title and body of the pull request can be entered in the same manner as git commit message.

          If instead of normal TITLE an issue number is given with -i, the pull request will be attached to an existing GitHub issue. Alternatively, instead of title you can paste a full URL to an issue on GitHub.

2
हब के बारे में नहीं पता था, यह होमब्रे के माध्यम से उपलब्ध है: brew install hubयह मैक उपयोगकर्ताओं के लिए सही उत्तर की तरह लगता है।
wfbarksdale 22

1
//, वहाँ कहीं भी ऑनलाइन है कि मैं हब के बारे में अधिक जानकारी के लिए लोगों को इंगित कर सकता हूं?
नाथन बसानी

19

एक आदमी की तरह खोज ...

man git | grep pull | grep request

देता है

git request-pull <start> <url> [<end>]

लेकिन, नाम के बावजूद, यह वह नहीं है जो आप चाहते हैं। डॉक्स के अनुसार:

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

@HolgerJust ने उस गीथूब मणि का उल्लेख किया जो आपको चाहिए:

sudo gem install gh 
gh pull-request [user] [branch]

अन्य लोगों ने hubजीथब द्वारा आधिकारिक पैकेज का उल्लेख किया है :

sudo apt-get install hub

या

brew install hub 

फिर

hub pull-request [-focp] [-b <BASE>] [-h <HEAD>]

3
यह लंबित परिवर्तनों का एक सारांश उत्पन्न करता है, इसका
पुलथ

1
@Flov "यह" से, मुझे लगता है कि आप git request-pullलाइन का मतलब है । हाँ, यह समझ में आता है, लेकिन मुझे आश्चर्य है कि gitub जैसे ई-मेल पुल-अनुरोधों के लिए कोई कमांड नहीं है। आखिरकार, git config user.emailयह उपलब्ध है। खासतौर पर नाम की कमान के साथ pull-request
हॉब्स

2
उबंटू के लिए, ऐसा लगता है कि github-cliप्रीसेज़ के बाद अब उपलब्ध नहीं है ... मैंने एक विकल्प के लिए पूछने के लिए एक प्रश्न खोला है
इसहाक

7

मैंने अपना खुद का निर्माण किया , मुझे लगता है कि यह अन्य समाधानों को बेहतर ढंग से काम करता है जो आसपास थे।

https://npmjs.org/package/pullr


6
क्लोन रिपोजिटरी के अंदर खींचने का प्रयास किया। मुझे एक त्रुटि खोलने में मदद मिली ... / clonedRepo / undefined / .pullr-token-cache windows 7 पर। आप कुछ और दस्तावेज़ीकरण करना चाह सकते हैं - उदाहरण के उपयोग की तरह?
बीटी

5

मैंने हाल ही में एक उपकरण बनाया है जो वास्तव में वही करता है जो आप चाहते हैं:

https://github.com/jd/git-pull-request

यह एक ही कमांड में सब कुछ ऑटोमेट करता है, रेपो को फोर्स करता है, पीआर आदि को आगे बढ़ाता है। यह पीआर को अपडेट करने का भी समर्थन करता है यदि आपको इसे संपादित करने या ठीक करने की आवश्यकता है!


5

मैं पुल अनुरोध बनाने के लिए साधारण उपनाम का उपयोग कर रहा हूं,

alias pr='open -n -a "Google Chrome" --args "https://github.com/user/repo/compare/pre-master...nawarkhede:$(git_current_branch)\?expand\=1"'

2

इसके अलावा github/hub, जो Git के लिए एक प्रॉक्सी के रूप में कार्य करता है , अब आपके पास (फरवरी 2020) है cli/cli:

" सुपरचार्ज अपने कमांड लाइन अनुभव को देखें: गिटहब सीएलआई अब बीटा में है "

पुल अनुरोध बनाएं

एक शाखा बनाएँ, मुद्दे में वर्णित बग को ठीक करने के लिए कई कमेंट्स करें, और अपने योगदान को साझा करने के लिए एक पुल अनुरोध बनाने के लिए gh का उपयोग करें।

cli / cli pr creation - https://i1.wp.com/user-images.githubusercontent.com/10404068/74261506-35df4080-4cb0-11ea-9285-c41583809e6c.png?ssl=1

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


और अप्रैल 2020 में: " गिटहब सीएलआई अब ऑटोफिलिंग पुल अनुरोधों और कस्टम कॉन्फ़िगरेशन का समर्थन करता है "

GitHub CLI 0.7 हमारे बीटा उपयोगकर्ताओं द्वारा प्रदान की गई प्रतिक्रिया से सबसे अधिक अनुरोधित संवर्द्धन में से कई के साथ बाहर है।
अंतिम लघु रिलीज, 0.6 के बाद से, तीन मुख्य विशेषताएं हैं:

  • के ghसाथ अपने पसंदीदा संपादक का उपयोग करने के लिए कॉन्फ़िगर करें gh config set editor [editor]
  • ghडिफ़ॉल्ट के साथ SSH के लिए कॉन्फ़िगर करें gh config set git_protocol ssh
    डिफ़ॉल्ट Git प्रोटोकॉल HTTPS है।
  • टाइटल और बॉडी को अपने कमिट्स से पुल रिक्वेस्ट के साथ ऑटोफिल करें gh pr create --fill

इसलिए:

gh pr create --fill

1

मैंने पहले भी इस टूल का उपयोग किया है- हालांकि ऐसा लगता है कि पहले एक मुद्दे को खोलने की आवश्यकता है, यह सुपर उपयोगी और वास्तव में स्ट्रीमलाइन वर्कफ़्लो है यदि आप जीथब इश ट्रैकिंग का उपयोग करते हैं। git ओपन-पुल और फिर आप जिस भी ब्रांच में हैं, वहां से एक पुल रिक्वेस्ट सबमिट की गई है। https://github.com/jehiah/git-open-pull

संपादित करें: ऐसा लगता है कि आप मक्खी पर समस्याएँ पैदा कर सकते हैं, इसलिए यह उपकरण एक अच्छा समाधान है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.