क्यों "मुझे GitHub पर कांटा"? [बन्द है]


50

मैं समझता हूं कि GitHub कैसे काम करता है, लेकिन एक बात जो मुझे उलझन में डालती है, वह यह है कि लगभग हर OSS प्रोजेक्ट में हाल ही में उनके होमपेज पर "Fork me on GitHub" लिंक है। उदाहरण के लिए,

http://jqtjs.com/ , http://www.daviddurman.com/flexi-color-picker/ , और अन्य।

यह इतना आम क्यों है? क्या ऐसा है कि वे कोड सत्यापन चाहते हैं, सुरक्षा / प्रदर्शन सुधार के लिए जाँच कर रहे हैं कि वे नहीं जानते कि कैसे करना है?

क्या यह दिखाने के लिए है कि यह एक सहयोगात्मक परियोजना है - सुधारों को जोड़ने के लिए आपका स्वागत है?

क्या वे GitHub के लिए काम करते हैं, या अपनी सेवा को बढ़ावा देना चाहते हैं? विचित्र रूप से पर्याप्त है, मुझे नहीं लगता कि मैंने हाल ही में " बिटकबेट पर फोर्क प्रोजेक्ट " लोगो देखा है।

उस लोगो के लिए मेरी पहली प्रतिक्रिया यह थी कि परियोजना को संभवत: किसी भी उपयोगी चीज़ के साथ एकीकृत करने के लिए संशोधित (कांटेक्ट) की आवश्यकता है - या कि वे खंडित कोडबेस को प्रोत्साहित कर रहे हैं, जिससे सभी को परियोजना का अपना कांटा बनाने के लिए प्रोत्साहित किया जा सके। लेकिन मुझे नहीं लगता कि यह इरादा है।


23
क्योंकि यह लिखना आसान है "यदि आप इस परियोजना में योगदान करना चाहते हैं या स्रोत की जांच करना चाहते हैं, तो हमारे रिपॉजिटरी को जीथब में देखें"। ;-)
नीटनफिर

1
मैं थोड़ा हैरान हूं कि किसी ने भी इसका उल्लेख नहीं किया है ... यह क्या है, एक दंड? इशारा? लेकिन वह विशेष शब्दांकन बिटकॉइन के साथ काम नहीं करेगा; उनकी साइट गिथब से अधिक पेशेवर होने का संकेत देती है। 'ऐसा इसलिए है क्योंकि मैंने पहली बार पढ़ने पर आपके सवाल को समझा - "बिटकॉइन में ऐसा क्यों नहीं है?"
इज़काता

2
वे सामाजिक विजेट्स हैं , बहुत कुछ जो एक एसई प्रश्न / उत्तर पर 'शेयर' लिंक के साथ दिखाई देते हैं: आपको Google+, फेसबुक और ट्विटर के लिए विजेट मिलते हैं। वे साइट डिजाइनरों के लिए तैयार करने के लिए उपयोग कर रहे हैं, इसलिए एकीकृत करना आसान है। मुझे लगता है कि उदाहरण के लिए Bitbucket जैसी कोई चीज नहीं है, इसलिए नोटिस करने के लिए कुछ भी नहीं है: अगर किसी भी परियोजना का अपना, घर का बना 'कांटा मुझे' विजेट है, तो वे संभवतः किसी अन्य की तरह नहीं दिखेंगे।
ल्यूक डेंटन

मैं इस प्रश्न को ऑफ-टॉपिक के रूप में बंद करने के लिए मतदान कर रहा हूं क्योंकि यह ओपन सोर्स सॉफ्टवेयर संस्कृति के बारे में है। वर्तमान में, समुदाय कैसे उत्पादन, वितरण, बाजार और कुछ समय के लिए खुले स्रोत परियोजनाओं के मुद्रीकरण के लिए एक साथ सहयोग करता है, इस विषय पर ओपन सोर्स स्टैक एक्सचेंज में विषय है
थॉमस ओवेन्स

जवाबों:


20

मुद्दे के पक्षधर सहयोग के अलावा, व्यावसायिक दृष्टिकोण से यह GitHub के यातायात, उपयोगकर्ता आधार और बाजार की स्थिति को बढ़ाएगा और मजबूत करेगा। इसलिए इसके साथ थोड़ी बहुत व्यापारिक रणनीति भी जुड़ी है।

व्यक्तिगत रूप से मुझे इस पर कोई आपत्ति नहीं है क्योंकि GitHub खुले स्रोत समुदाय को एक मूल्यवान सेवा प्रदान करता है।


23
GitHub के दृष्टिकोण से आपका जवाब क्यों है? लोग GitHub के यातायात, उपयोगकर्ता आधार और बाजार की स्थिति को मजबूत करने के लिए उस लोगो को अपनी साइटों पर नहीं डाल रहे हैं। यह एक साइड-इफेक्ट हो सकता है, लेकिन यह उद्देश्य नहीं है । यह कैसे एक GitHub "व्यापार रणनीति" है? GitHub इस लोगो को OSS साइट्स पर डालने के लिए भी ज़िम्मेदार नहीं है (OSS साइट मेंटेनर हैं)।
बेन ली

3
@ बेन ली आपकी टिप्पणी अच्छी तरह से ली गई है। लेकिन मैं यह कहना चाहूंगा कि एक उद्देश्य नहीं है , लेकिन कई हैं । मैंने इस दृष्टिकोण को खारिज नहीं किया कि एक उद्देश्य सहयोग को बढ़ावा देना है, बस हमें यह भी स्वीकार करना होगा कि गीथहब भी एक व्यवसाय है (यह तर्क दिया जा सकता है कि वे इस उद्योग में बाजार के नेता हैं), और फोर्क मी का एक और उद्देश्य GitHub रणनीतिक लाभ के लिए है। दी कि यह स्वैच्छिक है, लेकिन फिर भी यह प्रभावी नहीं है। यह GitHub को इंटरनेट पर अधिक दिखाई देता है, जो किसी भी इंटरनेट व्यापार रणनीति का एक महत्वपूर्ण हिस्सा है।
AsymLabs

2
@BenLee जैसे dmitri ने नोट किया, Github का यह पृष्ठ है: github.com/blog/273-github-ribbons क्या Bitbucket या किसी अन्य सेवा में भी कुछ ऐसा ही है?
NoBugs

75

क्या यह दिखाने के लिए है कि यह एक सहयोगात्मक परियोजना है - सुधारों को जोड़ने के लिए आपका स्वागत है?

हाँ: आपके पास सीधे उनके रेपो पर एक धक्का देने का अधिकार नहीं है।
लेकिन आपके पास उनके रेपो को कांटने की संभावना है , जो इसे आपका रेपो बनाता है , और वहाँ से पुश पुश करता है, पुल अनुरोध तैयार करता है

कांटा


2
मुझे पता है कि आप कांटा लगा सकते हैं, फिर जीथब पर अनुरोध कर सकते हैं, मेरा सवाल यह है कि वे "मुझे जीथब पर कांटा" क्यों कहते हैं?
NoBugs

6
@NoBugs यह सुनिश्चित करने के लिए कि आप उनकी परियोजना में वापस योगदान करना जानते हैं।
VonC

19
मुझे लगता है, यहाँ ध्यान गीथब पर "कांटा मुझे" पर अधिक है। यह शायद इसलिए है क्योंकि जीथुब इस तरह की सबसे लोकप्रिय साइट है। मुझे नहीं लगता कि अगर आप Bitbucket पर कांटा लगाते हैं तो किसी को कोई बड़ी समस्या नहीं है। वैसे भी अच्छा सवाल है।
जेन्सजी

मुझे नहीं लगता कि किसी को भी बड़ी समस्या है अगर आप gitorious.org पर कांटा लगाते हैं। यह सिर्फ इतना है कि लगभग कोई नहीं करता है ...
माइकल पॉलुकोनिस

37

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

यह पता चलता है कि "यह एक सहयोगी परियोजना है और इसमें सुधार लाने के लिए आपका स्वागत है।"

यह आपको मूल स्रोत को प्रभावित किए बिना कोड के साथ खेलने या उसी प्रोजेक्ट का स्पिन-ऑफ करने की अनुमति देता है।

https://help.github.com/articles/fork-a-repo

यही सिद्धांत अन्य सभी गिट मेजबानों पर लागू होता है।

एक परियोजना के लिए कांटा का अधिकार देने के मुख्य बिंदुओं (कई अन्य के बीच) है

  • फोस्टर सहयोग - परियोजना को बेहतर बनाने में लोगों को एक साथ काम करने की अनुमति देकर।
  • ज्ञान में जोड़ें - लोगों को आपके कोड का अध्ययन करने की अनुमति देकर।

आपके द्वारा किए जाने वाले कुछ प्रोजेक्ट गिथब स्टाफ द्वारा अपनी निजी जरूरतों के लिए हो सकते हैं। वे गिटब को बढ़ावा नहीं देना चाहते हैं। आप यहाँ github द्वारा प्रोजेक्ट्स पा सकते हैं: https://github.com/github

जैसा कि आप अन्य होस्ट से बैज नहीं देख रहे हैं, क्योंकि जीथब सबसे लोकप्रिय गिट होस्टिंग और सहयोग मंच है।


ठीक ठीक। DVCS वर्कफ़्लोज़ का मतलब है कि मैं अपने परिणामों को दूसरों पर प्रसारित किए बिना प्रकाशित कर सकता हूं। फोर्किंग का अर्थ है कि आप जो कुछ भी साझा करना चाहते हैं उसे साझा करने की अनुमति नहीं मांगना। यदि इंटरनेट आपके परिवर्तनों को पसंद करता है तो वे उन्हें अवशोषित करेंगे।
वारेन पी

15

कल्पना करें कि आप अपने पसंदीदा पाठ संपादक का उपयोग करते हैं, और कुछ समय बाद आप पाते हैं कि आप वास्तव में लागू होने वाली कुछ सुविधा को पसंद करेंगे (जैसे कि गैर-अवरुद्ध सहेजें विकल्प विकल्प)।

यह सोचने के बाद कि ग्यारहवीं बार आप खुद से एक लिखने का फैसला करते हैं। इस परियोजना के जीथब पृष्ठ को खोजने के बाद आपके पास दो विकल्प हैं:

  1. स्रोत कोड डाउनलोड करें, इसे संशोधित करें और इसे अपने लिए रखें।
  2. एक कांटा पर परियोजना कांटा और अपने कांटा पर काम करते हैं।

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

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

यह कहते हुए कि 'मुझे एक गीथब' प्रोजेक्ट के मालिक को केवल यह सुनिश्चित करना है कि आपने Fork on githubकोड को डाउनलोड करने और इसे अपने होम डायरेक्टरी में प्रकाशित करने के बजाय चुना है ।


7

यह केवल यह दिखाने के लिए है कि यह एक खुला स्रोत परियोजना है और यदि आप चाहें, तो आप इसे कांटा कर सकते हैं। GitHub पर इस ब्लॉग पोस्ट को भी देखें : https://github.com/blog/273-github-ribbons

अद्यतन: व्यक्तिगत रूप से, मैं इन GitHub रिबन को जोड़ता हूं ताकि लोग मुझे GitHub पर ढूंढ सकें और मेरी परियोजनाओं को स्टार कर सकें।)


6

इसका मतलब है कि वे गितुब पर हैं, जहां फोर्किंग सस्ता है, और वे अपने सॉफ़्टवेयर और समुदाय में सुधार के लिए योगदान को प्रोत्साहित करना चाहते हैं।


5

गितुब किसी भी सहयोगी कार्य को शामिल करने के लिए अपने यूजरबेस को चौड़ा करने की कोशिश कर रहा है, न केवल स्रोत कोड होस्टिंग; और इस प्रकार वे कांटा को धक्का देते हैं और एक पुल अनुरोध विधि भेजते हैं । पैच बनाना और उन्हें ईमेल के माध्यम से भेजना प्रोग्रामर और एक जैसे लोगों के अलावा अधिकांश लोगों के लिए आकर्षक नहीं होगा। पुश अनुमतियाँ वास्तव में यहां महत्वपूर्ण नहीं हैं, क्योंकि अंततः अधिकांश गिट (या मर्क्यूरियल, डार्क्स, या जो कुछ भी) उपकरण और विकास वर्कफ़्लो के ज्ञान की काफी मात्रा वाले उपयोगकर्ता किसी भी तरह संलग्न पैच के साथ एक ईमेल भेजने में सक्षम होंगे।

इसके अलावा, गितब कोड होस्टिंग की तुलना में सोशल नेटवर्किंग के बारे में अधिक है: आपकी प्रोफाइल, रिपॉज और बदलाव सॉफ्टवेयर डेवलपर के रूप में आपकी पहचान बनाते हैं, जैसे आपके ट्वीट और '+ 1'। उन सभी रिबन और बटन और समान को स्व-कैनवसिंग के साधन के रूप में उपयोग किया जाता है, उस व्यक्ति के प्रोफ़ाइल का एक पथ जिसे परियोजना से संबंधित है। आजकल, एक सभ्य जीथूब प्रोफाइल होना पहली बात है जो एक डेवलपर से अपेक्षित है। भले ही मैं किसी भी चीज के लिए मर्क्यूरियल का उपयोग करता हूं, मैं इन कारणों से जीआईटीबी को एचजी-गिट के माध्यम से धक्का देता हूं।

आखिरकार, कि "मुझे कांटा गिथब" पर रिबन "कलरव दिस आर्टिकल" या "शेयर दिस थिंग ऑन जी +" बटन के उद्देश्य से थोड़ा अलग है। (आपकी रिपॉजिट की सूची में एक रिपॉजिटरी का कांटा होने का मतलब है "मैं इस चीज़ का एक उपयोगकर्ता हूं", गिथब पर लिनक्स के हजारों कांटे हैं, हालांकि लाइनस टॉर्वाल्ड्स पुल अनुरोधों को स्वीकार नहीं करते हैं।)


2

यह कहने का एक और तरीका है "पैच का स्वागत है"।

इच्छाओं और सुविधा अनुरोध भेजने के बजाय, लोग पुल अनुरोध भेज सकते हैं जहां मूल लेखक समीक्षा करते हैं, पुल अनुरोध को सत्यापित और विलय करते हैं।

ऐतिहासिक रूप से फोर्किंग एक शत्रुतापूर्ण कार्रवाई है जिसे समूह द्वारा किया जाता है, जो मूल परियोजना के प्रबंधन के साथ संघर्ष में है, उदाहरण के लिए सन के ओपनऑफ़िस का उपयोग तेज सी / सी ++ एसवीजी प्लगइन को अस्वीकार करने के लिए किया जाता है क्योंकि यह राजनीतिक कारणों से अपने स्वयं के धीमी गति से टूटे जावा-आधारित प्लगइन को पसंद करता है।

ज्यादातर मामलों में कांटे खराब होते हैं, और स्वार्थी कंपनियों के लोगों या लोगों से ईर्ष्या द्वारा किए जाते हैं, जिनके पास ऐसी योजनाएं होती हैं जो मूल समुदाय के साथ साझा नहीं की जाती हैं और इसके साथ संरेखित नहीं होती हैं ( उदाहरण के लिए । कैनोनिकल ) और इसका उदाहरण है libav / avconcon। (जो एफएफएमपीईजी का एक कांटा है), उन मामलों में मूल समुदाय में उच्च गुणवत्ता, सुरक्षा है , और वे पैच का स्वागत करते हैं जो सामुदायिक योजनाओं के साथ गठबंधन किया जाता है।

डैन वाल्श ने कांटे की पुरानी परिभाषा नोट की

मैं लंबे समय से खुले स्रोत में हूं, और "कांटा" की मेरी परिभाषा दिनांकित हो सकती है। मैं एक "कांटा" के बारे में सोचता हूं कि एक समूह द्वारा एक अपस्ट्रीम प्रोजेक्ट के अपने संस्करण के उपयोग और योगदान के लिए एक समूह द्वारा की गई शत्रुतापूर्ण कार्रवाई एक "मूल" संस्करण को अनदेखा करती है। उदाहरण के लिए, लिबरऑफिस ओपनऑफिस से बंद हो रहा है या एक्सफ्री 86 के बंद होने के लिए एक्सगोर वापस जाने का रास्ता है।

फिर उन्होंने इसकी तुलना गीथूब के कांटे से की

आजकल, GitHub ने अर्थ बदल दिया है। जब एक सॉफ़्टवेयर रिपॉजिटरी GitHub या इसी तरह के प्लेटफ़ॉर्म पर मौजूद होती है, तो हर कोई जो योगदान करना चाहता है उसे "कांटा" बटन को हिट करना होगा, और अपने पैच का निर्माण शुरू करना होगा। इस लेखन के रूप में, GitHub पर डॉकर के पास 9,860 कांटे हैं, जिनमें हमारा भी शामिल है। इस परिभाषा के अनुसार, हालांकि, सभी पैकेज जो कि जहाज को वितरित करते हैं जिसमें पैच शामिल हैं, कांटे हैं। Red Hat Linux कर्नेल को जहाज करता है, और मैंने इसे कांटे के रूप में नहीं सुना है। लेकिन यह एक "कांटा" माना जाएगा, अगर आप किसी कांटेदार परियोजना को पैच के साथ शिप करने के बारे में विचार कर रहे हैं।


1

सभी प्रतिक्रियाएं कह रही हैं कि यह सहयोगात्मक सवाल है: क्यों " मुझे गितिहब पर क्लोन करें" या "डाउनलोड करें। गिथब से डाउनलोड करें?"

GitHub पर आप कांटे की संख्या देख सकते हैं। लेकिन, मेरे ज्ञान के लिए, क्लोन या ज़िप डाउनलोड की संख्या की गिनती नहीं।

इसलिए, मैं कहूंगा कि यह आंशिक रूप से सहयोग को प्रोत्साहित करने के लिए है, आंशिक रूप से प्रतिक्रिया और मान्यता प्राप्त करने के लिए कि लोग आपके कोड का उपयोग कर रहे हैं।

PS मैं GitHub के लिए काफी नया हूं, अगर यह ऑफ बेस पूरी तरह से गलत है तो कृपया मुझे बताएं।


क्या यह कहना आसान नहीं है, "यह है कि कैसे वितरित अनुरोधों द्वारा संस्करण नियंत्रण कार्य वितरित किए जाते हैं, जिनमें से निश्चित रूप से आवश्यकता होती है कि मैं पहले आपका रेपो कांटा, फिर मेरे कांटे के लिए प्रतिबद्ध हूं, फिर एक पुल अनुरोध जारी करता हूं अगर मैं साझा करने लायक कुछ बनाता हूं मूल परियोजना के साथ "
वॉरेन पी

1
मानना ​​पड़ेगा कि मैं वास्तव में "गेट" नहीं करता हूं। क्यों नहीं सिर्फ क्लोन या ज़िप फ़ाइल प्राप्त करें, और, अगर मैं परिवर्तन करता हूं, तो जो भी वीसीएस मुझे चाहिए उसे सेटअप करें? दुर्लभ उदाहरणों में, मैं सभी को लाभ के उपयोगी परिवर्तन करता हूं, फिर मैं ईमेल का सहारा ले सकता हूं, या फिर कांटा कर सकता हूं।
user949300

यह उत्तर स्व-विरोधाभासी है। आप सही सुझाव देते हैं कि वे सहयोग को प्रोत्साहित करने की कोशिश कर रहे हैं। इस तरह के लिंक की बात लोगों को आपके प्रोजेक्ट को डाउनलोड करने के लिए जगह देने के लिए नहीं है, बिंदु यह है कि उन्हें इसे विकसित करने में शामिल किया जाए। वे एक ज़िप डाउनलोड कर सकते हैं या क्लोन कर सकते हैं यदि वे सिर्फ अपने लिए एक कॉपी चाहते थे, लेकिन अगर वे चाहते हैं कि उनकी कॉपी एक अपस्ट्रीम प्रोजेक्ट में वापस योगदान करने के लिए एक पथ स्थापित हो जो कि एक कांटा होने के माध्यम से किया जाता है जो अपस्ट्रीम आपके योगदान को खींच सकता है से।
कालेब

@ user949300, आप अभी भी केवल उपयोग कर सकते हैं git clone https://github.com/$NAME_OF_GITHUB_USER/$NAME_OF_REPOSITORY.gitऔर फिर git format-patch masterईमेल या
लाइक के

0

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


उम। नहीं। इसके लिए रिपोज के लिए 'स्टार' और 'वॉच' के साथ-साथ यूजर्स के लिए 'फॉलो' भी हैं। कांटे का मतलब एक विशिष्ट प्रकार के कार्रवाई-योगदान को प्रोत्साहित करना है, जो केवल सामाजिक रूप से ही नहीं है।
कालेब

0

आप शायद सबसे आसान जवाब ले रहे हैं: वे चाहते हैं कि आपको पता हो कि कोड GitHub पर स्वतंत्र रूप से उपलब्ध है। मुझे लगता है कि आपकी परिकल्पना थोड़ी बहुत है।


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