लोग GitHub पर रिपॉजिटरी क्यों निकालते हैं? [बन्द है]


110

मैंने देखा कि बहुत सारे GitHub खातों में केवल रिपॉजिटरी होती हैं जिन्हें अन्य खातों से कांटा जाता है। इसके अलावा, जो लोग ऐसा करते हैं, वे आमतौर पर फोर्क्ड रिपॉजिटरी में कोई योगदान नहीं करते हैं।

मैंने लोगों को डाक टिकट और सीशेल इकट्ठा करने के बारे में सुना है, लेकिन कोई भी रिपॉजिटरी क्यों इकट्ठा करना चाहेगा? व्यक्तिगत रूप से मैं केवल एक रिपॉजिटरी को कांटा दूंगा अगर मैं इसमें कुछ बदलाव करना चाहता था।


84
वे यह सुनिश्चित करना चाहते हैं कि उनके पास एक स्थिर बैकअप होना चाहिए परियोजना के मालिक को अपने भंडार को हटा देना चाहिए और गायब हो जाना चाहिए
शाफ़्ट फ्रीक

9
सिर्फ़ इस वजह से कि GitHub में काम करने का अनुरोध कैसे होता है (और क्योंकि लोग थोड़े कांटे-खुश होते हैं और फिर इसके बारे में कभी-कभी भूल जाते हैं, या अपने प्रोजेक्ट आइडिया को छोड़ देते हैं और कांटे से छुटकारा पाने के लिए भूल जाते हैं)
haylem

2
सिर्फ एक टिप्पणी, जैसा कि मैं समझता हूं कि वे कोड के "बैकअप" के रूप में उपयोग करते हैं, लेकिन वे भूल जाते हैं (या नहीं जानते) कि अद्यतन अद्यतन करता है "कांटे" को प्रभावित नहीं करता है, जब उन्हें सही कांटा (बैकअप के लिए) करना चाहिए और "स्टार" रिपॉजिटरी यह जानने के लिए कि "री-फोर्क" कब करना है, दूसरे शब्दों में, उन्हें लगता है कि "कांटा" लगभग "स्टार" के समान है और अनजान एक पुराने कोड को बनाए रखता है।
गुइलहर्मे नेस्केमेन्टो

1
क्योंकि उन्होंने सुना है कि एक हॉट स्टार्टअप पर काम पर रखने के लिए गिथब होना काफी होता है।
गयूस

1
यहाँ forking कोई कारण के नुकसान के बारे में पोस्ट है zbowling.github.io/blog/2011/11/25/github
gavenkoa

जवाबों:


69

हमारे काम की लाइन में हम तकनीकी कारणों की तलाश करते हैं, लेकिन मेरी राय में प्राथमिक कारण तकनीकी नहीं है। यदि आप GitHub Help या अन्य GitHub ट्यूटोरियल्स को देखते हैं, तो रेपो को फोर्क करना आपके लिए "GitHub" कैसे करते हैं, इसके प्रमुख चरणों में से एक है।

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


42
गैर-तकनीकी कारणों की तर्ज पर: मैंने कई बार 'कांटा' बटन पर क्लिक किया है, जिसमें यह देखने की उम्मीद है कि किसने रेपो को कांटा है, केवल यह खोजने के लिए कि मैंने इसे कांटा है। ओह! यकीन नहीं होता कि दूसरे ने भी ऐसा ही किया है।
gdw2

53
@gdw: आपको यह बताने के लिए, "ओह, कांटा!"
बेन जैक्सन

1
मुझे याद है कि जब मैंने पहली बार git और Github के बारे में सीखा था, तो मैंने कुछ forking की थी क्योंकि गाइड और ट्यूटोरियल इसे अपने कंप्यूटर पर कोड की अपनी प्रतिलिपि प्राप्त करने के तरीके के रूप में प्रस्तावित करने के लिए लग रहे थे ।
rmac

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

3
@ जेसे, यह करना ठीक है, लेकिन आमतौर पर उस मामले में अनावश्यक है। एक कंपनी ऐसा कोड के लिए कर सकती है, जिस पर वे यह सुनिश्चित करते हैं कि मूल अचानक नहीं चले। यदि आप सब करना चाहते हैं स्रोत से निर्माण, एक क्लोन सरल है।
कार्ल

101

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

कांटे वाले रिपॉजिटरी में उनके पास पहुंच है और परिवर्तन को धक्का दे सकता है। वे पुल अनुरोधों का उपयोग करके मूल भंडार में वापस योगदान भी दे सकते हैं

मुझे लगता है कि ऐसे कई कारण हैं जिनके कारण लोग रिपॉजिटरी का इस्तेमाल करते हैं लेकिन उन्हें बदलते नहीं हैं:

  • वे एक भंडार का कांटा लगा सकते हैं जो ठंडा दिखता है, बस इसे कांटा (क्योंकि यह आसान है (केवल एक क्लिक है)) और बाद में एक बदलाव करना चाहते हैं (और फिर शायद इसे भूल जाएं / ऐसा करने का समय नहीं था)
  • वे एक परिवर्तन करने के लिए एक भंडार का कांटा लगाते हैं और फिर पता चलता है कि परिवर्तन अनावश्यक है और खुद के भंडार को हटाना भूल जाते हैं
  • वे एक भंडार का कांटा लगा सकते हैं क्योंकि परियोजनाओं में से एक दूसरे भंडार (शायद सबमॉड्यूल्स के माध्यम से) पर निर्भर करता है और वे निर्भरता के रूप में उपयोग किए जाने वाले भंडार पर कुल नियंत्रण चाहते हैं (मूल भंडार के मालिक Google को Google कोड आदि के लिए स्थानांतरित करने का निर्णय ले सकते हैं) )
  • वे बस कमिट को आगे बढ़ाना भूल सकते हैं

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

दूरस्थ ट्रैकिंग शाखा की स्थापना के लिए यह एक सरल वन-स्टेप प्रक्रिया है। GitHub के बाहर एक git रिपॉजिटरी में योगदान करने की कोशिश करने वाला कोई भी व्यक्ति जानता है कि यह कितना थकाऊ हो सकता है। साथ ही, यदि मूल लेखक AFK जाता है, तो आप फोर्क खोजने के लिए विकास ग्राफ का अनुसरण कर सकते हैं जो अभी भी सक्रिय रूप से विकसित हैं। उम्मीद है, यह GitHub को मृत परियोजनाओं की बंजर भूमि में पतित करने से उसी तरह रखेगा, जिस तरह से SourceForge ने किया था।
इवान प्लाइस

क्या होगा अगर आप किसी प्रोजेक्ट को कांटेक्ट करते हैं लेकिन कोई बदलाव नहीं करते हैं। क्या यह अवैध माना जाएगा?
जेसी

GitHub पर @Jesse सभी सार्वजनिक रिपॉजिटरी में एक ओपन सोर्स लाइसेंस होना चाहिए ( अर्थात उनकी सेवा की शर्तें) और इसलिए इसकी कोई समस्या नहीं है। खासकर जब आप कोई बदलाव नहीं करते हैं।
मार्कडिफिएंट

28

एक संभावित कारण: उनके पास रनिंग कोड है जो उन परियोजनाओं पर निर्भर करता है और उनकी निर्माण प्रक्रिया में गितुब से निर्भरता को खींचना शामिल है। कांटा होने से उन्हें टूटने वाले परिवर्तनों से बचाता है। संस्करणों को टैग न करने वाली परियोजनाओं के लिए, यह इसे प्राप्त करने का सबसे आसान तरीका है।


3
वे किसी ऐप के रिलीज़ संस्करण की संख्या या प्रकाशित संस्करण को कमिट कर सकते हैं।
रोमन एम। कोस

26

गितुब का पूरा बिंदु "सोशल कोडिंग" है

व्यक्तिगत रूप से, जब मैं रिपॉजिटरी कांटा करता हूं:

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

अब मैंने लोगों को डाक टिकट और सीशेल इकट्ठा करने के बारे में सुना है, लेकिन कोई भी रिपॉजिटरी क्यों इकट्ठा करना चाहेगा?

क्यों नहीं?

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

अब फोर्किंग शुरू करें।


9
"क्यों नहीं?" अनुभाग।
लेलेपव्रीड

मेरे अतिरिक्त 2 सेंट "क्यों नहीं?" अनुभाग: मेरी आदत हमेशा "गिट पुश" करने की है, जब मैंने एक फीचर पर काम करना समाप्त कर लिया है; मेरे लिए यह QED संतोषजनक एहसास है (कि मुझे रिमोट और शाखा का नाम लिखते समय नहीं मिलता है)। इसलिए जब भी कोई मामूली मौका होता है कि मैं रेपो में बदलाव करना चाहता हूं, तो मैं डिफ़ॉल्ट "मूल" रेपो को बदलने के बजाय इसे कांटा करना पसंद करूंगा।
yoniLavi

1
मुझे लगता है कि "क्यों नहीं?" अनुभाग बताता है कि "स्टार" कैसे काम करता है ...
TWStStrrob

2
केवल इसे बाद में देखने के लिए सहेजने के लिए एक तारा क्यों नहीं दिया?
यार

2
जब एक परियोजना दिलचस्प होती है तो मैं एक स्टार का उपयोग करूंगा। मैं हालांकि बाकी लोगों से सहमत हूं।
रोमन एम। कोस

1

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


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