GitHub रिपॉजिटरी के कांटे की निर्भरता हटाएं


206

मैं GitHub को कैसे भूल सकता हूं या अलग कर सकता हूं कि मेरा रेपो मूल रूप से किसी अन्य परियोजना का एक कांटा था?

मैंने GitHub में एक प्रोजेक्ट कांटेक्ट किया। मैं अब "जो कुछ भी / जो भी हो" से कांटा लगा सकता हूं। अभिभावक भंडार "जो भी / जो भी" अब बनाए रखा गया है। मुझे स्वतंत्र रिपॉजिटरी बनाने के लिए मूल भंडार के कोड आधार का उपयोग जारी रखने की अनुमति दी गई है।

क्या मूल रिपॉजिटरी से मेरी परियोजना को अलग करने का कोई तरीका है?

जवाबों:


175

आप गितुब समर्थन से संपर्क कर सकते हैं और उन्हें अपने भंडार को "सामान्य मोड" में बदलने के लिए कह सकते हैं।

पर इस पेज , पैरा "प्रतिबद्ध एक कांटा में किया गया था", यह समझाया गया है एक स्विच करने के लिए समर्थन के माध्यम से जाना है। इसलिए, यह संभावना है कि अपने आप से ऐसा करने का कोई तरीका नहीं है (जब तक कि आप अपने रेपो को नष्ट और बहलाना नहीं करते हैं जो पहले समझाया गया है ... यदि आप ऐसा करते हैं तो सावधान रहें यदि आपके पास टिकट या विकी आपकी परियोजना से जुड़ी हुई है जैसा कि वे करेंगे हटा दिया जाए!)।


30
मैं पुष्टि कर सकता हूं कि संपर्क समर्थन
त्रुटिपूर्ण रूप

1
लिंक किए गए पृष्ठ में अब बताई गई जानकारी नहीं है।
कारा ब्राइटवेल

3
@MattBrennan पृष्ठ बदल गया, लेकिन अंतिम खंड में अभी भी शामिल है: "कांटा को अलग करने के लिए और इसे GitHub.com या GitHub Enterprise पर एक स्टैंडअलोन रिपॉजिटरी में बदल दें, क्रमशः GitHub समर्थन या अपने साइट व्यवस्थापक से संपर्क करें।"
थॉमस माउलार्ड

1
सुपर फास्ट .. उन्होंने मुझे 1 घंटे में जवाब दिया। धन्यवाद
myDoggyWritesCode

2
गितुब एंटरप्राइज में आप इसे अब व्यवस्थापक-> सहयोग-> नेटवर्क के तहत पा सकते हैं और अपने उपयोग के मामले के आधार पर आपको 'मेक रूट', 'डिटैच' या 'एक्सट्रैक्ट' का उपयोग करना चाहिए।
कुटजि

45

आप गिथब यूआई से फोर्क रिपॉजिटरी को एक नए रिपॉजिटरी (फोर्क डिपेंसेन्सी के बिना) की नकल कर सकते हैं, फिर मूल कांटे को हटा दें:

  • जीथब में साइन इन करें
  • का चयन करें + ऊपर दाएं कोने में संकेत है, और आयात भंडार
  • अपने कांटे के भंडार को आयात करें। नई रिपॉजिटरी में कांटा निर्भरता नहीं होगी।
  • रिपॉजिटरी सेटिंग्स में ओरिजिनल, फोर्क्ड रिपॉजिटरी को डिलीट करें।

1
यह सबसे आसान था और इसने मेरे लिए काम किया :)। बहुत चालाक।
मोक्सी

1
किसी और को आयात करने की सुविधा "फांसी" के साथ एक मुद्दा था? मेरा लगभग 5 घंटे के लिए "आपकी परियोजना के संस्करण नियंत्रण प्रणाली का पता लगाने" पर रहा है। मुझे यकीन नहीं है कि मैं कतार में हूं या यह एक वास्तविक लटका है। रेपो छोटा है। केवल एक पंक्ति में होने की स्थिति में इसे रात में छोड़ने के लिए प्रलोभित किया गया।
बेंजामिन वेस्ट

मैं अंत में उत्सुक हो गया और बस "रद्द" पर क्लिक किया। रद्द करने पर क्लिक करने से यह वीसीएस डिटेक्शन को छोड़ने और कोड / कमिट / ब्रांच आदि को आयात करने की अनुमति देता है। यह तब था जब Github -> Github का आयात किया गया था। यदि मैं एक अलग वीसीएस से आ रहा था तो आयात नहीं लटका हो सकता है? निश्चित नहीं। कृपया इसे दूसरे रेपो के साथ करने पर भी ध्यान दें, मुझे इसे काम करने के लिए दो बार रद्द करना पड़ा। यदि सीएलआई सभी समान डेटा की प्रतिलिपि बनाता है जो एक बेहतर तरीका हो सकता है, लेकिन आशा है कि यह दूसरों को इस मार्ग को चुनने में मदद करता है।
बेंजामिन वेस्ट

9
बस स्पष्ट होने के लिए, यह दृष्टिकोण मुद्दों को संरक्षित नहीं करेगा और अनुरोधों को खींच लेगा।
गोलोपोट

आकर्षण जैसा काम करता है! धन्यवाद आप एक लाइफसेवर हैं! :)
ओमनिंद

44

सुनिश्चित करें कि आपके पास अपने स्थानीय रेपो पर सभी महत्वपूर्ण शाखाएँ और टैग हैं, गितुब रेपो को हटा दें, रिपॉजिटरी को सामान्य साधनों के माध्यम से फिर से बनाएँ (फोर्किंग न करें) और स्थानीय रिपॉजिटरी को पीछे धकेलें git push --all। ध्यान दें कि यदि आपके पास स्थानीय शाखाएं हैं जिन्हें आप प्रकाशित नहीं करना चाहते हैं, तो ऑपरेशन के लिए एक अस्थायी स्वच्छ स्थानीय क्लोन बनाने के लायक हो सकता है।

हालांकि, इससे विकी और मुद्दों से भी छुटकारा मिलेगा। जैसा कि विकी वास्तव में स्वयं का भंडार है, इसे इसी तरह से क्लोन करके और फिर से रीक्रिएट और पुश करके नियंत्रित किया जा सकता है। रेपो पता विकी के Git Access पेज ( git@github.com:user/repo.wiki.git) पर है।

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

इसलिए, यदि आपको संरक्षित किए जाने वाले मुद्दों की आवश्यकता है, तो आपको गितूब समर्थन के माध्यम से जाना चाहिए क्योंकि थॉमस मौलार्ड सुझाव देते हैं।


इस बात पर निर्भर करता है कि कितने मुद्दे हैं, वेब से पुराने को हटाने से पहले उन्हें एक-एक करके नए भंडार में स्थानांतरित करना संभव हो सकता है ( help.github.com/en/github/managing-your-work-on- github /… )। मुझे लगता है कि एक निर्धारित व्यक्ति प्रति घंटे 100 से अधिक मुद्दों को स्थानांतरित कर सकता है - एक मजेदार नहीं है, लेकिन कई रिपॉजिटरी के लिए एक उल्लेखनीय चीज है।
सुमा

22

मुझे इसी तरह की समस्या मिली, और इसे हल करने के लिए इस github सहायता पृष्ठ का उपयोग करके समाप्त हुआ । मैंने विकी और मुद्दों पर नज़र रखने वाले के बारे में कोई आपत्ति नहीं की क्योंकि यह मेरे ब्लॉग के लिए किसी अन्य उपयोगकर्ता द्वारा विकसित विषय का उपयोग करके किया गया था।

पूरे इतिहास को खोए बिना कई कमिट होने के बाद एक कांटे वाले रेपो को अलग करने और इसे अपने रूप में उपयोग करने के लिए:

git clone --bare git@github.com:user/forked_repo.git

Github new-repositoryवेबसाइट पर एक नया खाली रिपॉजिट बनाएं । और एक मिरर किए गए संस्करण को धक्का दें:

cd user.github.com.git/

git push --mirror git@github.com:user/new-repository.git

एक forked_repositoryअन्य नाम के साथ github का नाम बदल सकता है, इसे बैकअप के रूप में रख सकता है और यदि आवश्यक हो तो अपडेट की जांच कर सकता है। या बस इसे हटा दें।

new-repositoryमूल नाम का नाम बदलने से काम चल जाता है। साइड इफेक्ट के रूप में, आपका कमिट अब आपके इतिहास में दिखाई देता है।


11

यह केवल GitHub Enterprise पर लागू होता है, github.com पर नहीं

उस खाते में लॉग इन करें जिसमें व्यवस्थापक विशेषाधिकार हैं:

  1. उस भंडार पर जाएं जिसे आपको अलग करने की आवश्यकता है: https://<ghe url>/<org>/<repo>
  2. शीर्ष दाएं कोने पर "साइट व्यवस्थापक" रॉकेट पर क्लिक करें
  3. शीर्ष मेनू पट्टी पर "सहयोग" पर क्लिक करें
  4. बाएँ फलक पर "नेटवर्क" पर क्लिक करें
  5. नेटवर्क संरचना फलक में "मेक रूट" पर क्लिक करें
  6. स्वीकार करना

यह GitHub Enterprise 2.9 पर परीक्षण किया गया था


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

10

Aurelien और क्लेटन से जानकारी का उपयोग , मैं निम्नलिखित के साथ यह करने में सक्षम था:

$ git clone --bare https://github.com/my/forked_repo.git
<delete forked_repo on GitHub>
<recreate repo on GitHub using same name>
$ cd forked_repo.git
$ git push --mirror

यहाँ के लिए प्रलेखन हैgit clone --bare :

एक नंगे गिट भंडार बनाओ। यही है, <directory>प्रशासनिक फाइलों को बनाने और रखने के बजाय <directory>/.git, <directory>खुद को ही बनाएं $GIT_DIR। यह स्पष्ट रूप से एक-का तात्पर्य है क्योंकि काम करने वाले पेड़ की जांच करने के लिए कहीं नहीं है। रिमोट पर शाखा प्रमुखों को सीधे स्थानीय शाखा प्रमुखों के लिए कॉपी किया जाता है, उन्हें मैप किए बिना refs/remotes/origin/। जब इस विकल्प का उपयोग किया जाता है, तो न तो रिमोट-ट्रैकिंग शाखाएं और न ही संबंधित कॉन्फ़िगरेशन चर बनाए जाते हैं।

यहाँ के लिए प्रलेखन हैgit push --mirror :

धक्का करने के लिए प्रत्येक रेफरी नामकरण करने के बजाय, निर्दिष्ट करता है कि के तहत सभी refs refs/(जो शामिल है, लेकिन तक सीमित नहीं है refs/heads/, refs/remotes/और refs/tags/) दूरस्थ भंडार को प्रतिबिंबित करती जा। नए बनाए गए स्थानीय रीफ़ को दूरस्थ छोर पर धकेल दिया जाएगा, स्थानीय रूप से अपडेट किए गए रीफ़ को दूरस्थ छोर पर अद्यतन किया जाएगा, और हटाए गए रीफ़ को दूरस्थ छोर से हटा दिया जाएगा। यदि कॉन्फ़िगरेशन विकल्प remote.<remote>.mirrorसेट है , तो यह डिफ़ॉल्ट है।

नोट: अन्य gitआधारित उत्तरों की तरह, यह उन मुद्दों की नकल नहीं करेगा जो gitरेकी का हिस्सा नहीं हैं जैसे कि विकि और मुद्दे। प्रति टापियो:

  • विकी एक अलग गिट रेपो है और इसे तापियो के समान फैशन में संभाला जा सकता है। पता है: git@github.com:user/repo.wiki.git
  • GitHub एपीआई के माध्यम से मुद्दों को निर्यात किया जा सकता है लेकिन उन्हें फिर से बनाने के मुद्दे हैं क्योंकि वे केवल आपके उपयोगकर्ता द्वारा बनाए जा सकते हैं, इसलिए आयात जानकारी खो देंगे।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.