क्लोन किए गए रेपो से पुल अनुरोध कैसे सबमिट करें?


82

मौजूदा स्थानीय-क्लोन किए गए रेपो से पुल अनुरोध कैसे सबमिट करें?

अक्सर, मैं जीथब से कुछ पुस्तकालयों स्रोत कोड को देखना चाहता हूं, इसलिए मैं इसे क्लोन करता हूं। बाद में, मुझे कोड के साथ कुछ समस्या का पता चलता है और इसे मेलिंग सूची में उठाते हैं, अक्सर गुजरने में। पुस्तकालय लेखक का कहना है "अच्छा लगता है, क्या आप एक पुल अनुरोध भेज सकते हैं?"।

और जवाब "आसानी से नहीं है"। मैंने अभी तक रेपो को कांटा नहीं किया है, Ive ने इसे क्लोन किया है। और ऐसा कोई तरीका नहीं लगता है जिससे मैं एक क्लोन रेपो से पुल अनुरोध सबमिट कर पाऊं?

यदि यह सीमा सत्य है, तो ऐसा लगता है कि समझदार प्रतिक्रिया किसी भी चीज को और जो भी आप कभी भी देखते हैं, को कांटा करना है, ताकि यदि आप कभी योगदान देना चाहें, तो आप कर सकते हैं। और जो आपके निष्क्रिय खाते को कई निष्क्रिय कांटे से भर देता है।

इस मुद्दे के बारे में बहुत सी बात नहीं लगती - क्या मैं एकमात्र व्यक्ति हूं जिसे यह समस्या प्रभावित करती है?


4
चूँकि यह बहुत समान प्रश्न है: stackoverflow.com/questions/4209208/…
बेन हचिसन

जवाबों:


55

GitHub पर रीपो फोर्क करें, फिर अपने स्थानीय क्लोन कॉपी में रिमोट के रूप में अपने फोर्क रेपो जोड़ें:

git remote add myfork https://github.com/<myGitHubAccountName>/<repoName>.git

तब आप अपने कांटे को आगे बढ़ा सकते हैं:

git push myfork master

यदि आप केवल एक पुल अनुरोध से अधिक कर रहे हैं, तो आप originरिमोट को हटा सकते हैं और अपने कांटे को मूल नाम दे सकते हैं:

git remote rm origin
git remote add origin https://github.com/<myGitHubAccountName>/<repoName>.git

यह आमतौर पर मैं क्या करता हूँ। कभी-कभी मैं मूल उत्पत्ति को जोड़ देता upstreamहूं, इसलिए मेरे पास अभी भी इसका संदर्भ है।


5
बिना फोर्क किए आप यह कैसे करते हैं?
हारून हॉल

3
यदि आपके पास एक रेपो तक पहुंच है, तो आप उस रेपो की शाखाओं के बीच एक पुल अनुरोध खोल सकते हैं। आपको अपनी स्थानीय शाखा को एक नए शाखा के नाम पर धकेलना होगा origin- जैसे कुछ git push origin HEAD:my-feature। तो फिर तुम से एक पुल अनुरोध खोलने के लिए वेब UI का उपयोग कर सकते my-featureकरने के लिए master
bobthecow

11
@Torek - अभी तक एक और कार्यप्रवाह खराब कर दिया। क्या वास्तव में एक साधारण क्रिया करना मुश्किल है? मुझे लगा कि यह git के प्राथमिक लक्ष्यों में से एक था - एक विकेन्द्रीकृत मॉडल में आसान पैच का सहयोग और साझा करना। यह एक रॉकेट वैज्ञानिक नहीं लेता है लक्ष्य को कम करने के लिए एक मौलिक और आसान होना चाहिए क्योंकि यह एक मूल वर्कफ़्लो है। उन लोगों को एक यूएक्स विशेषज्ञ को नियुक्त करने की आवश्यकता है क्योंकि वे सभी को अपने दम पर यह पता लगाने के लिए सामान्य ज्ञान की कमी है।
jww

10

यदि आप अपने रास्ते में एक और बाइनरी स्थापित करने के साथ ठीक हैं, तो github ने एक अच्छा छोटा टूल जारी किया है जिसे कहा जाता है hub

यदि आपने किसी और के रेपो पर क्लोन किया है:

$ hub fork  # This creates a fork and adds your repo as a remote

$ git push YOUR_USER feature  # push the changes to your new remote

$ hub pull-request  # will open your browser

हब के बारे में साझा करने के लिए धन्यवाद और मुझे यह पसंद है :) मैं वास्तव में इस स्थिति में था और हब ने इसे मेरे लिए इतना सुविधाजनक बना दिया।
वाहिब उल हक

यह ध्यान रखना महत्वपूर्ण है कि "हब कांटा" अभी भी GitHub पर आपके खाते में फोर्क रेपो बनाता है।
ग्रैनगर

-1

मैं हमेशा कांटा के बजाय क्लोन करता हूं और मेरे लिए निम्न चरण काम करते हैं:

  1. अपने क्लोन किए गए रेपो पर एक नई शाखा बनाएं और नया बदलाव करें।
  2. निम्नलिखित के रूप में अपनी शाखा में परिवर्तन को धक्का दें:

    git push origin insert_your_working_branch_name

  3. अब आपको जीथब मास्टर से पुल अनुरोध में अपनी कार्यशील शाखा खोजने में सक्षम होना चाहिए।


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