2011-11-02 12 views
65

मेरे पास एक गिटहब रेपो में एक सार्वजनिक PHP प्रोजेक्ट है, जिसमें केवल एक शाखा (मास्टर) है।गिटहब पर एक सार्वजनिक रेपो की निजी शाखा होने के बाद?

मैं एक अलग शाखा/कांटा चाहता हूं जो मेरे लिए निजी है (मैंने निजी गिटहब रिपोज़ के लिए भुगतान किया है)। मैं निजी शाखा/कांटा से सार्वजनिक रिपो में परिवर्तनों को विलय करने में सक्षम होना चाहता हूं, और इसके विपरीत।

इसे ध्यान में रखते

, यहाँ मेरे सवालों हैं:

  1. मैं एक सार्वजनिक रेपो पर एक निजी शाखा मिल सकता है?
  2. क्या मैं अपनी खुद की सार्वजनिक शाखा/कांटा में अपने सार्वजनिक रिपो को फोर्क कर सकता हूं?
  3. यदि उपरोक्त दोनों संभव हैं, तो कौन सा सबसे अच्छा तरीका है? यदि न तो, मुझे कैसे आगे बढ़ना चाहिए?
+1

अपने सार्वजनिक भंडार को एक निजी भंडार के रूप में फोर्क करने का सबसे अच्छा विचार नहीं है, जहां आप कई शाखाएं बनाते हैं जिन्हें आप सार्वजनिक भंडार (और इसके विपरीत) में धक्का नहीं देते हैं (पीछे)? – Legolas

+0

जो मैं पूछ रहा हूं, मैं सार्वजनिक रिपो की प्रतिलिपि बनाने में सक्षम होना चाहता हूं लेकिन मेरे अपडेट निजी होने तक (जब तक कि मैं विशिष्ट चीज़ों को सार्वजनिक रूप से वापस नहीं धक्का देना चाहता) – Lizard

+0

http://24ways.org/2013/keeping -पर्ट्स-ऑफ-कोड -बेस-प्राइवेट-ऑन-गीथब/ – assylias

उत्तर

66

यह एक सार्वजनिक रेपो पर एक निजी शाखा के लिए संभव है?

गिटहब पर, आपका भंडार या तो सार्वजनिक या निजी है; आप चुनिंदा रूप से केवल एक शाखा "निजीकरण" नहीं कर सकते हैं।

क्या मैं अपनी खुद की सार्वजनिक शाखा/कांटा में अपने सार्वजनिक प्रतिनिधि को फेंक सकता हूं?

आप आवश्यकता के अनुरूप अपने स्थानीय मशीन, शाखा करने के लिए अपने सार्वजनिक रेपो क्लोन कर सकते हैं और नदी के ऊपर अपने "निजी" शाखाओं धक्का नहीं (निर्दिष्ट करने जो शाखा मूल करने के लिए पुश करने के लिए द्वारा: git push origin master या git push origin branch-i-want-to-be-public:master)।

आगे बढ़ने का सर्वोत्तम तरीका/मुझे कैसे आगे बढ़ना चाहिए?

आदेश दोनों अपने सार्वजनिक और निजी विकास के लिए GitHub का लाभ लेने के, मैं GitHub के भीतर अपने सार्वजनिक शाखा forking सुझाव है, नया कांटा करने के लिए "निजी" की सेटिंग बदलने, और फिर निजी संस्करण क्लोनिंग में अपनी स्थानीय मशीन पर नीचे। जब आप परिवर्तन करने के लिए तैयार होते हैं, तो गिटहब पर अपने निजी कांटे तक सब कुछ दबाएं और फिर सार्वजनिक रेपो में शाखाओं की प्रतिलिपि बनाने के लिए pull requests का उपयोग करें।

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

यदि आपके पास भुगतान किया गया गिटहब खाता है, या कोई अन्य सेवा का उपयोग कर रहे हैं जो सार्वजनिक और निजी कांटे और पुल अनुरोध (जैसे BitBucket) प्रदान करता है, तो आप अपने कोड को सार्वजनिक बनाने के लिए उपर्युक्त दृष्टिकोणों में से किसी एक का उपयोग कर सकते हैं।

+15

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

+0

बस कोशिश की। यह काम करता हैं! – mj1531

+0

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

1

1.) क्या यह संभव है, मैं क्या जानते से एक सार्वजनिक रेपो

पर एक निजी शाखा के लिए कोई है।

2.) मैं अपने खुद के निजी शाखा

नहीं में अपने ही सार्वजनिक रेपो कांटा कर सकते हैं, आप एक ही शाखा में एक पूर्ण रेपो (1-एन शाखाओं) कांटा नहीं कर सकते। वास्तव में आप वास्तव में कर सकते हैं, अगर आप सिर्फ पूर्ण repo की एक शाखा कांटा। बस इसे रिमोट के रूप में जोड़ें या क्लोन से शुरू करें।

आपको Sparse checkouts में रुचि भी हो सकती है।

3.) यदि दोनों उपरोक्त संभव हो रहे हैं जो आगे सबसे अच्छा तरीका है

n है/एक

4.) अगर कोई भी संभव नहीं है कि कैसे मैं आगे बढ़ना चाहिए?

n/a

24
  1. Duplicate your repo
  2. डुप्लिकेट रेपो को गिटहब पर एक निजी बनाएं।
  3. कि नई करने के लिए अपने सार्वजनिक रेपो लिए करना करता है के साथ पुश शाखाओं:
  4. क्लोन अपनी मशीन के लिए निजी रेपो
  5. अपने सार्वजनिक रेपो के लिए एक दूरस्थ जोड़ें (... दूरस्थ सार्वजनिक [email protected] जोड़ने Git) सार्वजनिक रिमोट (सुनिश्चित करें कि आप गलती से निजी-केवल कोड नहीं करते हैं)
  6. आप 'गिट फ़ेच पब्लिक' का उपयोग करके अपने सार्वजनिक रेपो में परिवर्तन ला सकते हैं और फिर उन्हें स्थानीय रूप से मर्ज कर सकते हैं और अपने निजी रेपो (मूल रिमोट) पर धक्का दे सकते हैं।
+0

डुप्लिकेशंस मेरे लिए ठीक काम करता है, हालांकि मुझे इसे विपरीत क्रम में करना था, पहले एक निजी रेपो बनाना था और फिर कमांड लाइन से सार्वजनिक रेपो को डुप्लिकेट करना था। धन्यवाद! – Joel

संबंधित मुद्दे