दिलचस्प पोस्ट
जावास्क्रिप्ट का उपयोग कर इफ्रेम में क्लिक करें सी # में जेनेरिक पैरामीटर के लिए "पैराम्स" कीवर्ड का उपयोग करना तालिका के केवल एक क्षेत्र के आधार पर Linq में अलग स्ट्रिंग द्वारा एक std :: vector <std :: pair <std :: string, bool >> छंटनी? क्या सी ++ में टाइपपेफ़ खोजशब्द के लिए एक जावा समतुल्य या पद्धति है? मानचित्र को JSON कन्वर्ट करें MySQL को PHP सरणी सहेजें? पायथन में वर्तमान उपयोगकर्ता नाम पाने का एक पोर्टेबल तरीका है? जावा में एएससीआईआई में स्ट्रिंग का हेक्स परिवर्तित करें कैसे एलएपीसीडब्लूआरआर में कनवर्ट करने के लिए? संग्रहित प्रक्रियाओं / फ़ंक्शंस की सूची MySQL कमांड लाइन Set.seed फ़ंक्शन का उपयोग करने के कारण डेटटाइम को 24 घंटों का समय कैसे प्रारूपित करें? क्या कोई भी तरीका है जो मैं बता सकता हूं कि स्क्रीन कितनी मुश्किल है एक कंटेनर व्यू के भीतर समान रूप से अंतरिक्ष के कई विचार

गिटहब में फोरिंग बनाम शाखाएं

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

फोरिंग इस प्रोजेक्ट के मेरे संस्करण को मूल एक से अलग बनाता है क्योंकि मुझे मूल परियोजना की सहयोगियों की सूची में नहीं होना है। चूंकि हम घर में एक परियोजना विकसित कर रहे हैं, इसलिए सहयोगियों के रूप में लोगों को जोड़ने में कोई समस्या नहीं है। लेकिन, हम यह समझना चाहते हैं कि यदि एक परियोजना फंटा हुआ है तो मुख्य परियोजना को वापस मर्ज परिवर्तन करना कठिन होगा। यही है, मुझे आश्चर्य है कि अगर शाखाएं दो परियोजनाओं को सिंक्रनाइज़ेशन में आसान बना देती हैं दूसरे शब्दों में, क्या मैं अपने मुख्य प्रोजेक्ट के संस्करण और मुख्य परियोजना के बीच बदलावों को मर्ज करने और बदलना आसान बनाता हूं जब मैं शाखा करता हूं?

वेब के समाधान से एकत्रित समाधान "गिटहब में फोरिंग बनाम शाखाएं"

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

फोर्किंग GitHub सर्वर साइड पर एक क्लोन से ज्यादा कुछ नहीं है:

  • सीधे वापस धक्का की संभावना के बिना
  • मर्ज अनुरोध प्रबंधित करने के लिए फोर्क कतार सुविधा के साथ जोड़ा गया

आप मूल परियोजना के साथ सिंक्रनाइज़ेशन में एक कांटा रखेंगे:

  • एक रिमोट के रूप में मूल परियोजना को जोड़ने
  • उस मूल परियोजना से नियमित रूप से ला रहा है
  • ब्याज की शाखा के शीर्ष पर अपने वर्तमान विकास को पुन: स्थापित करें जो आपको उस फैसले से अपडेट हुआ।

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

लक्ष्य वास्तव में सहयोग की अनुमति देना है, हालांकि प्रत्यक्ष भागीदारी हमेशा संभव नहीं है।


तथ्य यह है कि आप GitHub पक्ष पर क्लोन का मतलब है कि आपके पास अब दो "केंद्रीय" भंडार ("केंद्रीय" के रूप में "कई सहयोगियों से दिखाई दे रहे हैं)
यदि आप उन्हें एक प्रोजेक्ट के लिए सीधे सहयोगकर्ता के रूप में जोड़ सकते हैं, तो आपको किसी अन्य कांटा के साथ किसी अन्य को प्रबंधित करने की आवश्यकता नहीं है।

गीथहब पर कांटा

मर्ज का अनुभव उसी के बारे में होगा, लेकिन एक अतिरिक्त स्तर के indirection (कांटा पर पहले धक्का), फिर पुल के लिए पूछें, मूल रिपो पर evolutions के खतरे के साथ अपने फास्ट फॉरवर्ड विलय नहीं तेजी से आगे बढ़ना) ।
इसका अर्थ यह है कि सही वर्कफ़्लो का मतलब है कि git pull --rebase upstream करने के लिए इस तरह से अपना खुद का git pull --rebase upstream ( git pull --rebase upstream से नए git pull --rebase upstream शीर्ष पर अपना काम git pull --rebase upstream करें) मूल (अपस्ट्रीम) रेपो से कमिट के ऊपर

यह भी देखें:

  • Git कांटा git क्लोन है?
  • मूल Github रिपॉजिटरी से फोर्केड गिटब रिपॉजिटरी में नए अपडेट खींचें

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

सामान्य पैटर्न इस प्रकार है:

  • अपनी स्वयं की गीथहब की नकल रखने के लिए मूल प्रोजेक्ट की रिपॉजिटरी कांटा दें, जिसके बाद आपको परिवर्तनों को आगे बढ़ाने की अनुमति होगी।
  • अपने स्थानीय मशीन पर अपने GitHub रिपॉजिटरी को क्लोन करें
  • वैकल्पिक रूप से, मूल रिपॉजिटरी को अपने स्थानीय रिपॉजिटरी पर अतिरिक्त रिमोट रिपॉजिटरी के रूप में जोड़ें। फिर आप उस रिपॉजिटरी में सीधे प्रकाशित परिवर्तनों को सीधे लाने में सक्षम होंगे।
  • अपने संशोधन करें और अपना स्वयं स्थानीय स्तर पर बनाये रखें
  • अपने बदलावों को अपने GitHub रिपॉजिटरी में धक्का करें (जैसा कि आप आमतौर पर प्रोजेक्ट के रिपॉजिटरी पर सीधे लिखने की अनुमति नहीं देंगे)।
  • प्रोजेक्ट के रख-रखाव से संपर्क करें और उन्हें अपने परिवर्तन लाने और समीक्षा / मर्ज करने के लिए कहें, और उन्हें प्रोजेक्ट के रिपॉजिटरी में वापस धकेल दें (यदि आप और उनके लिए चाहते हैं)।

इसके बिना, सार्वजनिक परियोजनाओं के लिए यह बहुत ही असामान्य है कि किसी ने स्वयं को सीधे अपना कर दिया।

यहां उच्च-स्तरीय अंतर हैं:

forking

पेशेवरों

  • उपयोगकर्ता द्वारा अलग शाखाएं रखता है
  • प्राथमिक भंडार में अव्यवस्था कम कर देता है
  • आपकी टीम प्रक्रिया बाहरी योगदानकर्ता प्रक्रिया को दर्शाती है

विपक्ष

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

शाखाओं में

पेशेवरों

  • एक जगह पर एक परियोजना के आसपास किया जा रहा सभी काम रखता है
  • सभी सहयोगी इस पर सहयोग करने के लिए एक ही शाखा में प्रवेश कर सकते हैं
  • केवल एक गिट रिमोट के साथ निपटने के लिए है

विपक्ष

  • छोड़ दिया जाने वाली शाखाएं अधिक आसानी से ढेर कर सकती हैं
  • आपकी टीम योगदान प्रक्रिया बाहरी योगदानकर्ता प्रक्रिया से मेल नहीं खाती
  • टीम के सदस्यों को शाखाएं जमा करने से पहले आपको योगदानकर्ता के रूप में जोड़ना होगा