मैं एक सार्वजनिक भंडार कैसे निकाल सकता हूं, लेकिन अपने कांटे को निजी बना सकता हूं? मेरे पास निजी रिपॉजिटरी का समर्थन करने के लिए सदस्यता है।
मैं एक सार्वजनिक भंडार कैसे निकाल सकता हूं, लेकिन अपने कांटे को निजी बना सकता हूं? मेरे पास निजी रिपॉजिटरी का समर्थन करने के लिए सदस्यता है।
जवाबों:
उत्तर सही हैं, लेकिन सार्वजनिक रेपो और कांटे के बीच कोड को कैसे सिंक किया जाए, इसका उल्लेख नहीं है।
यहाँ पूर्ण वर्कफ़्लो है (हमने ओपन सोर्स रिएक्ट नेटिव से पहले यह किया है ):
सबसे पहले, रेपो की नकल करें जैसा कि अन्य लोगों ने कहा (विवरण यहां ):
Github UI केprivate-repo
माध्यम से एक नया रेपो बनाएं (इसे कॉल करें ) । फिर:
git clone --bare https://github.com/exampleuser/public-repo.git
cd public-repo.git
git push --mirror https://github.com/yourname/private-repo.git
cd ..
rm -rf public-repo.git
निजी रेपो पर क्लोन करें ताकि आप इस पर काम कर सकें:
git clone https://github.com/yourname/private-repo.git
cd private-repo
make some changes
git commit
git push origin master
पब्लिक रेपो से नई हॉटनेस खींचने के लिए:
cd private-repo
git remote add public https://github.com/exampleuser/public-repo.git
git pull public master # Creates a merge commit
git push origin master
बहुत बढ़िया, आपके निजी रेपो में अब सार्वजनिक रेपो प्लस से आपके परिवर्तनों का नवीनतम कोड है।
अंत में, निजी रेपो -> सार्वजनिक रेपो अनुरोध बनाने के लिए:
सार्वजनिक रेपो पृष्ठ के शीर्ष दाईं ओर सार्वजनिक रेपो (छोटा "कांटा" बटन) का कांटा बनाने के लिए GitHub UI का उपयोग करें। फिर:
git clone https://github.com/yourname/the-fork.git
cd the-fork
git remote add private_repo_yourname https://github.com/yourname/private-repo.git
git checkout -b pull_request_yourname
git pull private_repo_yourname master
git push origin pull_request_yourname
अब आप सार्वजनिक-रेपो के लिए जीथब यूआई के माध्यम से एक पुल अनुरोध बना सकते हैं, जैसा कि यहां वर्णित है ।
एक बार परियोजना के मालिक आपके पुल अनुरोध की समीक्षा करते हैं, तो वे इसे मर्ज कर सकते हैं।
बेशक पूरी प्रक्रिया को दोहराया जा सकता है (बस उन चरणों को छोड़ दें जहां आप उपाय जोड़ते हैं)।
git clone
रिमोट ट्रैकिंग शाखाएं स्थापित करेगा और शायद क्लोन किए गए रेपो में कुछ अन्य कॉन्फ़िगरेशन जो आप वास्तव में नहीं चाहते हैं। जबकि - abare क्लोन सिर्फ .it dir को रिमोट से कॉपी करता है।
git status
आज तक सब कुछ दिखाता है, काम कर रहे पेड़ को कोई फर्क नहीं पड़ता कि मैं क्या बदलूं। नतीजतन मैं कुछ भी प्रतिबद्ध और धक्का नहीं कर सकता। मैंने इस प्रयास के लिए 2 बार और नया निजी रेपो हटा दिया, लेकिन मैं इसी मुद्दे पर चलता रहा। कोई सुझाव?
अब एक और विकल्प है (जनवरी -2015)
वर्तमान उत्तर स्पष्टता के लिए थोड़े से पुराने हैं:
संक्षिप्त उत्तर है:
यह GitHub पर प्रलेखित है: डुप्लिकेटिंग-ए-रिपॉजिटरी
आपको रेपो की नक़ल करनी है
आप इस डॉक को देख सकते हैं (गितुब से)
फोर्किंग के बिना एक रिपॉजिटरी का डुप्लिकेट बनाने के लिए, आपको मूल रिपॉजिटरी और मिरर-पुश के खिलाफ एक विशेष क्लोन कमांड को नए पर चलाने की आवश्यकता है।
निम्नलिखित मामलों में, आप जिस रिपॉजिटरी को पुश करने की कोशिश कर रहे हैं - जैसे कि उदाहरणार्थी / नया-रिपॉजिटरी या उदाहरण के लिए / मिरर किया हुआ - पहले से ही गिटहब पर मौजूद होना चाहिए। अधिक जानकारी के लिए "एक नया भंडार बनाना" देखें।
एक रिपॉजिटरी को मिरर करना
एक सटीक डुप्लिकेट बनाने के लिए, आपको नंगे-क्लोन और दर्पण-धक्का दोनों प्रदर्शन करने की आवश्यकता है।
कमांड लाइन खोलें, और ये कमांड टाइप करें:
$ git clone --bare https://github.com/exampleuser/old-repository.git # Make a bare clone of the repository $ cd old-repository.git $ git push --mirror https://github.com/exampleuser/new-repository.git # Mirror-push to the new repository $ cd .. $ rm -rf old-repository.git # Remove our temporary local repository
यदि आप किसी अन्य स्थान पर एक रिपॉजिटरी को दर्पण करना चाहते हैं, जिसमें मूल से अपडेट प्राप्त करना शामिल है, तो आप दर्पण को क्लोन कर सकते हैं और समय-समय पर परिवर्तनों को धक्का दे सकते हैं।
$ git clone --mirror https://github.com/exampleuser/repository-to-mirror.git # Make a bare mirrored clone of the repository $ cd repository-to-mirror.git $ git remote set-url --push origin https://github.com/exampleuser/mirrored # Set the push location to your mirror
एक नंगे क्लोन के साथ, एक प्रतिबिंबित क्लोन में सभी दूरस्थ शाखाएं और टैग शामिल हैं, लेकिन सभी स्थानीय संदर्भों को हर बार जब आप लाएंगे, तब इसे ओवरराइट किया जाएगा, इसलिए यह हमेशा मूल रिपॉजिटरी के समान होगा। पुश के लिए URL सेट करना आपके दर्पण पर पुश करने को सरल बनाता है। अपने दर्पण को अपडेट करने के लिए, अपडेट और पुश प्राप्त करें, जिसे क्रोन जॉब चलाकर स्वचालित किया जा सकता है।
$ git fetch -p origin $ git push --mirror
GitHub में अब एक आयात विकल्प है जिससे आप अपनी नई आयातित रिपॉजिटरी को सार्वजनिक या निजी रूप से चुन सकते हैं