मैं GitHub में अन्य कोड में कैसे योगदान कर सकता हूं? [बन्द है]


231

मैं GitHub में एक निश्चित परियोजना में योगदान देना चाहूंगा । क्या मुझे इसे फोर्क करना चाहिए ? यह शाखा ? क्या अनुशंसित है और इसे कैसे करना है?


61
एक और हास्यास्पद करीब
स्टीफन

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

7
मैं वास्तव में नहीं देखता कि यह 'रचनात्मक नहीं' है। अकेले वोट और विचार इस बात का प्रमाण देते हैं कि यह एक लोकप्रिय प्रश्न है जिसका लोग उत्तर दे रहे हैं।
इयान


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

जवाबों:


180

आदर्श रूप से आप:

  1. परियोजना को कांटा
  2. एक या एक से अधिक अच्छी तरह से टिप्पणी की है और रिपॉजिटरी को साफ करें। यदि आप एक से अधिक भाग या सुविधा को संशोधित कर रहे हैं, तो आप यहां एक नई शाखा बना सकते हैं।
  3. गिटहब के वेब इंटरफेस में एक पुल अनुरोध करें।

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

यदि सुविधा पर अच्छी तरह से चर्चा की गई है और कुछ +1 हैं या प्रोजेक्ट के मालिक ने इसे अनुमोदित किया है, तो समस्या को स्वयं को असाइन करें, फिर ऊपर दिए गए चरणों को करें।

कुछ प्रोजेक्ट पुल अनुरोध प्रणाली का उपयोग नहीं करेंगे। अपने कोड को प्रोजेक्ट में वापस लाने के लिए सबसे अच्छे तरीके से लेखक या मेलिंग सूची की जाँच करें।



1
हाँ, अनुरोध को खींचें। मर्ज़ रिक्वेस्ट जीटोरियस शब्दावली है।
यमन रामिन

2
@MariusKavansky यह दूसरा तरीका है! एक बार जब आप जानते हैं कि किस पर काम करना है, तो आप केवल योगदान करते हैं :)
हैशबोर्न

बाद मैंने कुछ ओपन सोर्स प्रोजेक्ट में योगदान दिया। मुझे लगता है कि नई सुविधा पर चर्चा करने के लिए किसी मुद्दे को खोलने के लिए यह एक बेहतर विचार है यदि यह एक नई सुविधा है। यदि यह एक विशेषता या मुद्दा है जिस पर अच्छी तरह से चर्चा की गई है, तो आपको इस मुद्दे को स्वयं को सौंपना चाहिए फिर ऊपर दिए गए चरणों को करना चाहिए। यह मेरी 2 सेंट है।
बजकर

@hashbrown, वह पूछ रहा है कि अनुरोधित सुविधाओं की "सूची" इस प्रकार कहाँ है। वे सुविधाएँ जो पहले से ही अनुरोध की जा रही हैं और + 1ed।
पचेरियर

31

यान के उत्तर को जोड़ने के लिए , एक बार जब आप एक परियोजना को आगे बढ़ाते हैं, तो आप अपनी इच्छित किसी भी शाखा में विकास कर सकते हैं (एक नया, या मूल परियोजना से एक)

स्मरण में रखना:


1
क्या आप अपने दूसरे बिंदु (रिबासिंग शाखा) पर विवरण या लिंक जोड़ सकते हैं ?
जोर्जआर्टवेयर

1
@JorgeArtware मैंने कुछ लिंक के साथ उत्तर को अपडेट किया है जो रिबेस को दिखाता है।
वॉनसी

@VonC मैं यहां एक प्रश्न पूछता हूं, लेकिन अगर आपको लगता है कि यह आवश्यक है, तो मैं इसमें से एक नया प्रश्न बनाऊंगा। मैं 'सीधे इतिहास' रखने के अलावा, मर्ज के बजाय पुनर्जागरण क्यों करूंगा? दूसरे शब्दों में, यहाँ मैं क्या करता हूँ जब मैं कुछ परियोजनाओं में योगदान देता हूँ (मेरी फीचर शाखा से पीआर को विकसित करने के लिए और मास्टर शाखाओं में विलय कर दिया गया है): git checkout master; git pull;वही विकसित करने के लिए (जहाँ मेरी सुविधा शाखा को पहले विलय कर दिया गया था) अंतर मैं सोच सकता हूँ के बाद, "पुल बनाम पुल --rebase" और "मर्ज बनाम रिबेस" पढ़ने के बाद सिर्फ फ्लैट इतिहास है। कुछ और गहरा?
linuxbandit

"योगदान" (इस पृष्ठ का संदर्भ) की अवधि में @grasshopper, आप हमेशा धक्का देने से पहले अद्यतन शाखाओं के शीर्ष पर अपने स्थानीय कमिट को फिर से बनाना चाहते हैं: जो मूल परियोजना शाखा में अनुरक्षक द्वारा एकीकृत करने के लिए तुच्छ योगदान को कहा जाएगा। आपके प्रश्न के संदर्भ में, जहां आपका पीआर स्वीकार किया गया है, निश्चित रूप से, आप मौजूदा शाखाओं को अपडेट करने के लिए रिबेस के बजाय मर्ज कर सकते हैं।
वॉन

(क्षमा करें, अभी-अभी मेरे जीथूब को प्रतिबिंबित करने के लिए उपयोगकर्ता नाम बदल दिया गया है) - @VonC आपको धन्यवाद, इसलिए सभी सुझाव जो मैं PR के सामने रिबेट लागू होने के बारे में पढ़ रहा था, समझ में आता है। मेरे स्थानीय रेपो के अंदर स्वीकार किए गए और मर्ज किए गए पीआर को प्रतिबिंबित करने के लिए, क्या कोई सामान्य अभ्यास (मर्ज के बजाय रिबेस) है, या क्या मैं जो भी कर सकता हूं? यदि मैं एक और पीआर जमा करुँगा तो क्या होगा?
linuxbandit

15

यान और VonC के उत्तरों को जोड़ने के लिए, यह खुद github से एक अच्छा संसाधन है: http://help.github.com/forking/

"सहयोग" शीर्षक के तहत सही साइडबार पर भी ध्यान देना सुनिश्चित करें।


10

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

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


4

गिथब के पास एक परियोजना में सहयोग करने के कई तरीके हैं। सबसे अधिक परियोजना का उपयोग मॉडल एक पुल अनुरोध मॉडल है। मैंने लोगों को अपना पहला GitHub पुल अनुरोध बनाने में मदद करने के लिए एक परियोजना शुरू की है। आप यहां अपना पहला पीआर बनाने के लिए हाथों पर ट्यूटोरियल कर सकते हैं

वर्कफ़्लो के रूप में सरल है

  • गितुब में रेपो को कांटा
  • रेपो को अपनी मशीन में सम्‍मिलित करें
  • एक शाखा बनाएं और आवश्यक परिवर्तन करें
  • GitHub पर अपने कांटे में अपने परिवर्तन पुश करें git push origin branch-name
  • एक Compare and pull requestबटन देखने के लिए गिटहब पर अपने कांटे पर जाएं
  • इस पर क्लिक करें और आवश्यक विवरण दें


2

तकनीकी वर्कफ़्लो

मैं निम्नलिखित वर्कफ़्लो का सुझाव दूंगा:

  1. फोर्क रिपॉजिटरी (गीथहब वेब इंटरफेस के माध्यम से: "फोर्क" बटन)
  2. अपने forked रिपॉजिटरी में, URL को कॉपी करें
  3. क्लोन (कमांड लाइन में)

    git clone <url-from-your-workspace>

  4. निर्देशिका दर्ज करें, जो अभी बनाई गई है, और एक शाखा बनाएं

    cd <directory> git checkout -b <branchname>

  5. अब अपने बदलाव करें

  6. आप प्रत्येक परिवर्तन के बाद एक या अधिक कमिट बना सकते हैं:

    commit -a

  7. जब हो जाए, तो अपने बदलावों को आगे बढ़ाएं

    git push origin <branch>

  8. अपनी कमांड लाइन में, आपको पीआर बनाने के लिए एक URL देखना चाहिए । URL पर जाएं और PR बनाने के लिए बटन पर क्लिक करें।

  9. यदि नहीं, तो ब्राउज़र में रिपॉजिटरी पर जाएं और यह आपको पुल अनुरोध बनाने के लिए एक बटन प्रदान करेगा

बस।

इसलिए, मूल रूप से, आपने अपने कार्यक्षेत्र के लिए भंडार को छोड़ दिया, एक नई शाखा बनाई और उस नई शाखा को आगे बढ़ाया।

यदि आप बाद में एक ही क्लोन रेपो से अधिक पीआर बनाते हैं, तो आपको दूसरे पीआर के लिए एक और शाखा बनाने से पहले सिंक्रनाइज़ (मूल भंडार से नवीनतम परिवर्तन प्राप्त करना चाहिए) करना चाहिए:

git checkout master
git remote add upstream <url-of-original-repo>
git pull upstream master

अन्य बातें:

  • परियोजना में योगदान दिशा-निर्देश हो सकते हैं: एक फ़ाइल CONTRIBUTING.rst या .md के लिए देखें
  • आप परियोजना के लिए कोडिंग दिशानिर्देशों का पालन करना चाह सकते हैं
  • आप पहले मुद्दे के रूप में अपने विचार को रेखांकित करना चाह सकते हैं
  • आप प्रोजेक्ट के लिए पुल अनुरोध टैब को देख सकते हैं और जांच सकते हैं कि क्या खुले पीआर, विलयित पीआर हैं

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

हमेशा विनम्र रहें। याद रखें, परियोजना के अनुरक्षक आपके पीआर को मर्ज करने के लिए किसी भी तरह से बाध्य नहीं हैं। क्या आपके पास प्रोजेक्ट में जोड़ने के लिए कुछ मूल्यवान है?


1
अच्छी तरह से विस्तृत प्रक्रिया (मेरे 9 साल पुराने उत्तर से अधिक सटीक)। Upvoted।
वॉन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.