GitHub पर आप अपनी खुद की रिपॉजिटरी को कैसे भूल सकते हैं?


164

GitHub पर मेरा सार्वजनिक भंडार है। मैं इसे दोहराना / कॉपी करना चाहता हूं और इस रिपॉजिटरी के आधार पर एक नई परियोजना पर काम करना चाहता हूं, लेकिन मैं अब इसे प्रभावित नहीं करना चाहता। मैंने इसे GitHub UI का उपयोग करके forking की कोशिश की, लेकिन इसने कुछ भी नहीं किया।


4
वास्तव में आप क्या हासिल करने की कोशिश कर रहे हैं? हो सकता है कि आप इसे सिर्फ शाखा लगाकर हल कर सकते हैं?
अर्टफेक्ट 2

4
मैं परियोजना की एक प्रति प्राप्त करना चाहता हूं और उस परियोजना का विस्तार कुछ और करना चाहता हूं लेकिन मूल परियोजना को प्रभावित किए बिना। वह यह था। किसी भी तरीके, इसका हल।
WowBow

1
@ Artefact2 .. क्षमा करें, मैंने सोचा कि mcepl द्वारा समाधान मेरी जरूरत को हल कर दिया लेकिन, यह नहीं किया। मैं 'क्लोन क्लोन' का उपयोग करके इस परियोजना को क्लोन करने के बाद, मैं मूल रेपो को इंगित नहीं करना चाहता, लेकिन जीथब पर एक नए रेपो को बनाता हूं जो मैंने बनाया था। मैं उसे कैसे प्राप्त कर सकता हूं?
वाहबो

1
@ Artefact2 क्या आपको मेरे सवाल मिले?
वाहबॉ

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

जवाबों:


205

मुझे नहीं लगता कि आप अपने स्वयं के रेपो को कांटा कर सकते हैं।
इसे क्लोन करें और इसे एक नए रेपो में धकेलें, यह अच्छा है लेकिन आपको इसकी आवश्यकता है:

git clone https://github.com/userName/Repo New_Repo
cd New_Repo
git remote set-url origin https://github.com/userName/New_Repo
git remote add upstream https://github.com/userName/Repo
git push origin master
git push --all

(देखें git push)

" कांटा पर अपनी खुद की परियोजना कांटा में वर्णित सभी प्रक्रिया देखें "।


छह साल बाद (2016), अब आपके पास GitHub आयातक है जो आपको GitHub सहित किसी अन्य स्रोत से रेपो आयात करने की अनुमति देता है।
देखें " GitHub आयातक के साथ एक भंडार आयात करना "

https://help.github.com/assets/images/help/importer/import-repository.png

narf का उत्तर ( उत्कीर्णित ) भी उस प्रक्रिया का वर्णन करता है।

यह आपको एक नई रिपॉजिटरी बनाने और पुराने के पूरे इतिहास को नए रूप में आयात करने की अनुमति देगा, अपने गीथहेल यूआरएल का उपयोग करके।

फिर से: जो आपको मिलता है वह एक प्रतिलिपि है, वास्तविक कांटा नहीं है: आप नए रेपो से पुराने वाले के लिए पुल अनुरोध नहीं कर सकते।

दोबारा (bis), जैसा कि टिप्पणियों में कहा गया है mpersico, यह TRUE FORK नहीं है।

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


धन्यवाद @VonC मुझे लगता है कि आप कॉन्फ़िग फ़ाइल का संपादन करना भूल गए हैं।
वाहबो

1
मैं .it / config के बारे में बात कर रहा था। जब तक आप मूल url को नहीं बदलते हैं, जब आप "git Remote add ...." कहते हैं, तो यह आपको अस्वीकार कर देगा, क्योंकि मूल नाम पहले से मौजूद है। लेकिन एक बार जब मैंने config फाइल में url को बदल दिया तो यह ठीक काम करता है। आपने मुझे जिस लेख की ओर संकेत किया है, वह दिखाता है।
वाहबो

7
@WowBow यदि remoteपहले से मौजूद है, तो a git remote set-url origin https://github.com/userName/New_Repo। वह .git/configआपके लिए फ़ाइल बदल देगा । देखें git-scm.com/docs/git-remote
VonC

1
@ जो कि अपेक्षित है, अपस्ट्रीम से लाने के लिए। देखें stackoverflow.com/a/33360766/6309
VonC

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

107

GitHub वेबसाइट से इसे 30 सेकंड में करने का एक आसान तरीका:

  1. अपने रेपो के URL को कॉपी करें। Ex: https://github.com/YourName/YourOldRepo(संकेत: यह URL है जब आप अपने रेपो के मुख्य पृष्ठ को github पर देखते हैं।
  2. +ऊपरी दाएं कोने में आइकन पर क्लिक करें ।
    https://i.stack.imgur.com/9zJgo.png
  3. "आयात भंडार" का चयन करें।
  4. जहाँ यह "पुराने URL" के लिए पूछता है, उस URL को चिपकाएँ जिसे आपने चरण # 1 पर कॉपी किया था
    https://i.stack.imgur.com/vgWd3.png
  5. अपने नए रेपो का नाम दर्ज करें और क्लिक करें Begin Import
  6. बस! अब आपके पास सभी प्रतिबद्ध इतिहास और शाखाओं के साथ पूर्ण रेपो की एक प्रति है!

सीमाएँ: यह वास्तव में एक वास्तविक कांटा नहीं है। यह रेपो की एक प्रति है। यह आगे और पीछे के अनुरोधों को करने की अनुमति नहीं देगा।


4
मैं अपने पुराने 2010 के उत्तर में GitHub आयातक (2016 में जारी) को भूल गया: मैंने उस उपकरण में, और आपके उत्तर के लिए एक संदर्भ जोड़ा है।
VonC

10
  1. git clone https://github.com/YOURREPO.git TargetRepoName
  2. cd TargetRepoName /
  3. git दूरस्थ सेट-url उत्पत्ति https://github.com/TargetRepoName.git
  4. git push -u मूल गुरु

1
कोई ऐसा जोड़ सकता है कि आपको GitHub से पहले github.com/TargetRepoName.git बनाने की आवश्यकता है, लेकिन इसके अलावा, यह जवाब मेरी पहली पसंद थी और इसने काम किया।
फ्लोरियन स्ट्राब

5

वांछित प्रभाव को प्राप्त करने का सबसे सरल तरीका एक नया भंडार बनाना है, फिर आयात विकल्प का चयन करें और उस रीपो के URL की आपूर्ति करें जिसे आप कांटा करना चाहते हैं।

नीचे दिए गए चित्र मदद करेंगे:

आयात -1 के माध्यम से कांटा खुद रेपो

आयात -2 के माध्यम से कांटा खुद रेपो


4

बस इसे क्लोन करें, नया खाली रेपो बनाएं और इसे पुश करें।


1
धन्यवाद। मैं बहुत ज्यादा सोच रहा था।
वाहबॉ

मैंने इसे अपनी स्थानीय मशीन पर क्लोन किया और एक खाली रेपो बनाया, लेकिन, जब मैंने उत्पत्ति github.com/userName/New_Repo.git को निकालने की कोशिश की .. तो कहते हैं कि दूरस्थ उत्पत्ति पहले से मौजूद है। मुझे इसे कैसे हल करना चाहिए?
वाह

और अब जब मैंने धक्का दिया तो यह मूल रेपो को बदल रहा है।
WowBow

क्या आप मुझे बता सकते हैं कि नए रेपो को कैसे आगे बढ़ाया जाए? मैंने क्लोन किया और नया रेपो बनाया लेकिन मैं नए रेपो को धक्का नहीं दे सका।
वॉवबो

5
आपको रीमोट बदलना होगा। अन्यथा, यह उसी स्थान पर धकेलने का प्रयास करने वाला है। git remote rm originइसके बादgit remote add origin URL-to-new-repository
वड्सवर्ल्ड

1

मैंने "डुप्लिकेटिंग रिपॉजिटरी" के लिए इन आधिकारिक निर्देशों का पालन किया और यह काम करने लगा।

https://help.github.com/articles/duplicating-a-repository/

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


1

वॉनसी का स्वीकृत समाधान, दुर्भाग्य से, मेरे लिए काम नहीं कर पाया जैसा मुझे मिला

रिमोट: रिपॉजिटरी नहीं मिली

निम्नलिखित में क्या काम था:

  1. Github पर एक new_repo बनाएं
  2. git क्लोन new_repo
  3. सीडी new_repo
  4. जीआईटी रिमोट अपस्ट्रीम old_repo.git जोड़ें
  5. गिट पुल अपस्ट्रीम मास्टर
  6. git पुश ओरिजिनल मास्टर

मुझे यहाँ से ऊपर सब मिल गया ।


1

GitHub का उपयोग करने वाले गैर-तकनीकी जानकारों के लिए, ऊपर दिए गए अन्य बेहतरीन उत्तरों के विकल्प के रूप में यहां एक सरल उपाय है। क्या आप की जरूरत है बस एक GitHub डेस्कटॉप अनुप्रयोग है।

  1. ब्राउज़र से अपना स्वयं का प्रोजेक्ट रेपो खोलें, और ज़िप के रूप में डाउनलोड करें, जैसे your-project-master.zip
  2. अनज़िप करें और इसे अपने नए रेपो के रूप में नाम बदलें।
  3. GitHub डेस्कटॉप खोलें, और अपने अनज़िप्ड लोकल पाथ न्यू रेपो में ब्राउज़ करके अपना नया रेपो जोड़ें। यहां छवि विवरण दर्ज करें
  4. प्रकाशित बटन पर क्लिक करके इसे अपने जीथूब पर प्रकाशित करें। नाम और विवरण जोड़ना न भूलें :)

1

अब आप बेस रिपॉजिटरी को टेम्प्लेट के रूप में चिह्नित कर सकते हैं (सेटिंग्स में, इसे टेम्प्लेट रिपॉजिटरी के रूप में चिह्नित करें ) और रेपो के मुख्य पृष्ठ पर, अपने दूसरे रेपो को बनाने के लिए इस टेम्पलेट का उपयोग करें क्लिक करें

Github मदद: एक टेम्पलेट से एक रिपॉजिटरी बनाने वाला टेम्पलेट रिपॉजिटरी बनाना


-1

बस यह कोशिश की, और यह काम किया:

  1. एक संगठन के खाते में अपने रेपो को कांटा
  2. इसका नाम बदला
  3. स्वामित्व को वापस अपने पास स्थानांतरित करें

4
अच्छा विचार है, लेकिन मैं सिर्फ यह कोशिश की और एक त्रुटि मिली aspiers already has a repository in the UPSTREAM/NAME network:।
एडम स्पियर्स

इसका कारण यह है कि अब आपके पुनर्नामित करने या अपने repos github.com/blog/1508-repository-redirects-are-here
shadowbq

-1

जब आप एक नया रेपो बनाते हैं, तो आप रेपो .it url के साथ एक और रेपो से आयात कर सकते हैं। इसने मुझे 30 सेकंड का समय दिया।

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