दूरस्थ उत्पत्ति पहले से ही एक नए भंडार में 'गिट पुश' पर मौजूद है


548

मैं, कुछ स्थान पर GitHub पर अपने प्रोजेक्ट है git@github.com:myname/oldrep.git

अब मैं अपने सभी कोड को किसी अन्य स्थान पर एक नए भंडार में धकेलना चाहता हूं git@github.com:newname/newrep.git

मैंने कमांड का उपयोग किया:

git remote add origin git@github.com:myname/oldrep.git

लेकिन मैं इसे प्राप्त कर रहा हूं:

घातक: दूरस्थ मूल पहले से मौजूद है।


6
कमांड का आउटपुट $> git रिमोट -v शो
sykora


एक अच्छा तरीका अपने नए बनाए गए भंडार के तल पर "दूसरे भंडार से आयात" का उपयोग करना है, यदि आप पुराने के URL को जानते हैं।
JW.ZG

इसी तरह का एक सवाल यहाँ पूछा गया था: stackoverflow.com/questions/2432764/…
jciloa

1
यदि आप मूल रिमोट रखना चाहते हैं git remote add origin2 ...., तो आप बस एक अलग नाम का उपयोग कर सकते हैं , लेकिन यदि आपको केवल रेपो कॉन्फ़िगरेशन को संशोधित किए बिना एक बार पुश करने की आवश्यकता है, तो आप बस कर सकते हैं git push git@github.com:user/another-project.git master:master
ccpizza

जवाबों:


870

आपको यह त्रुटि मिल रही है क्योंकि "मूल" उपलब्ध नहीं है। "उत्पत्ति" एक सम्मलेन है जो आज्ञा का हिस्सा नहीं है। "मूल" रिमोट रिपॉजिटरी का स्थानीय नाम है।

उदाहरण के लिए आप यह भी लिख सकते हैं:

git remote add myorigin git@github.com:myname/oldrep.git  
git remote add testtest git@github.com:myname/oldrep.git

मैनुअल देखें:

http://www.kernel.org/pub/software/scm/git/docs/git-remote.html

आपके द्वारा दर्ज एक दूरस्थ भंडार को निकालने के लिए:

git remote rm origin

यदि आप "अपस्ट्रीम" रिमोट को हटाना चाहते हैं तो "मूल" रिमोट रिपॉजिटरी का नाम है:

git remote rm upstream

8
"git दूरस्थ rm उत्पत्ति" से मुझे काम नहीं मिला, अगर यह आपके लिए "git Remote -v" के साथ जांच करने का प्रयास नहीं करता है, तो यह आपको दिखाएगा कि यदि आपके मूल में url सेट है, यदि यह आपके लिए संभव नहीं है स्थानीय रूप से init किया और इसे दूरस्थ रूप से धकेलने की कोशिश कर रहा है, और मेरी तरह एक गलत व्यवहार किया है)। इसके बाद रॉबिनएच के उत्तर का पालन करें: git Remote set-url origin git@github.com: यूजरनेम / प्रोजेक्टनेम.जितर
क्लैरेंस लियू

1
url को बाध्य करने के लिए इस उत्तर को जांचें ।
सरोग्रिग्स

"गिट रिमोट आरएम मूल" एक आकर्षण की तरह काम करता है, अद्भुत! :) puhh, मैं git की शब्दावली में नया हूँ इसलिए यह एक बड़ी खोज थी, लेकिन आपके उत्तर ने मुझे बहुत मदद की। :) धन्यवाद!
मार्टिन फ़ेफ़र

3
git push -u origin master --force
रॉनी रोयस्टोन

- प्रवर्तन समाधान है!
निर्माता

260

पिछले समाधान मूल को अनदेखा करते प्रतीत होते हैं, और वे केवल दूसरे नाम का उपयोग करने का सुझाव देते हैं। जब आप बस उपयोग करना चाहते हैंgit push origin , तो पढ़ते रहें।

समस्या दिखाई देती है क्योंकि Git कॉन्फ़िगरेशन का एक गलत क्रम का पालन किया जाता है। आपने अपने .it कॉन्फ़िगरेशन में पहले से ही एक 'git उत्पत्ति' जोड़ दिया होगा।

आप अपने Git कॉन्फ़िगरेशन में दूरस्थ मूल को निम्न पंक्ति के साथ बदल सकते हैं:

git remote set-url origin git@github.com:username/projectname.git

यह कमांड Git रिपॉजिटरी के लिए एक नया URL सेट करता है जिसे आप पुश करना चाहते हैं। अपने स्वयं के उपयोगकर्ता नाम और प्रोजेक्टनेम को भरना महत्वपूर्ण है


7
धन्यवाद, वास्तव में मुझे क्या करना था :)
winkbrace

यह मेरे लिए यह fiexd। लेकिन वास्तव में इस समस्या से मुझे क्या मदद मिली क्योंकि मैं पोर्टेबल था जो कि विंडोज़ के लिए गिहब के साथ स्थापित किया गया था। मैं समाधान यहाँ
PerseP

महान! मुझे लैब रेपो को बदलने के लिए अपने जिज्ञासु रेपो को बदलने की आवश्यकता थी और यह समाधान एकदम सही था! धन्यवाद!
मार्सेलो डॉस सैंटोस

ओपी के रूप में एक ही स्थिति, और मुझे ऐसा करने की आवश्यकता थी और फिर @ मिहस का समाधान।
बीन

4
यह सबसे अच्छा जवाब है IMHO
क्रेटोस

83

यदि आपने गलती से स्थानीय नाम "मूल" के रूप में रखा है, तो आप इसे निम्नलिखित के साथ हटा सकते हैं:

git remote rm origin

क्या करता है वास्तव में मतलब है "गलती से 'मूल' के रूप में स्थानीय नाम नाम" आप विस्तार से @Ozgur यह व्याख्या कर सकते हैं?
युआन वेन

1
इसका मतलब यह हो सकता है कि आपने दूरस्थ मूल को जोड़ा है जो एक गिट रिपॉजिटरी को इंगित नहीं करता है। इसलिए, यदि आप मास्टर में अपने सभी परिवर्तनों को आगे बढ़ाने की योजना बना रहे हैं, तो गिट यह कहते हुए शिकायत करेगा कि दूरस्थ मूल एक गिट रिपॉजिटरी नहीं है।
गौतम होन्नावर

22

METHOD1->

चूंकि मूल पहले से मौजूद है इसलिए इसे हटा दें।

git remote rm origin
git remote add origin https://github.com/USERNAME/REPOSITORY.git

METHOD2->

मौजूदा दूरस्थ रिपॉजिटरी URL को -> git रिमोट सेट-url से भी बदल सकते हैं

यदि आप HTTPS का उपयोग करने के लिए अपडेट कर रहे हैं

git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

यदि आप SSH का उपयोग करने के लिए अद्यतन कर रहे हैं

git remote set-url origin git@github.com:USERNAME/REPOSITORY.git

यदि आपके पास मौजूद रिमोट को अपडेट करने की कोशिश की जा रही है तो आपको एक त्रुटि मिलेगी। इसलिए उससे सावधान रहें।

METHOD3->

मौजूदा रिमोट का नाम बदलने के लिए git रिमोट का नाम बदलें कमांड का उपयोग करें। एक मौजूदा दूरस्थ नाम, उदाहरण के लिए, मूल।

git remote rename origin startpoint
# Change remote name from 'origin' to 'startpoint'

रिमोट के नए नाम को सत्यापित करने के लिए->

git remote -v

यदि नया करने के लिए इस ट्यूटोरियल का प्रयास करें->

TRY GIT TUTORIAL


1
बहुत बहुत धन्यवाद। मुझे डाउनलोड किया गया था, किसी और ने git किया और फिर इसे मेरे GitHub में क्लोन करना चाहता था। अंत में, मैं आपकी पहली विधि का उपयोग करके सफलता पा रहा हूं।
नईमूर हसन

17

आप बस एक टेक्स्ट एडिटर में अपनी कॉन्फ़िगरेशन फ़ाइल को संपादित कर सकते हैं।

में ~/.gitconfigआप कुछ में डाल करने की आवश्यकता है जैसे निम्नलिखित:

[user]
        name  = Uzumaki Naruto
        email = myname@example.com

[github]
        user = myname
        token = ff44ff8da195fee471eed6543b53f1ff

में oldrep/.git/configफ़ाइल (अपने भंडार के विन्यास फाइल में):

[remote "github"]
        url = git@github.com:myname/oldrep.git
        push  = +refs/heads/*:refs/heads/*
        push  = +refs/tags/*:refs/tags/*

यदि आपकी रिपॉजिटरी की कॉन्फ़िगरेशन फ़ाइल में एक दूरस्थ अनुभाग है, और URL मेल खाता है, तो आपको केवल पुश कॉन्फ़िगरेशन जोड़ने की आवश्यकता है। यदि आप लाने के लिए सार्वजनिक URL का उपयोग करते हैं, तो आप URL को 'pushurl' के रूप में धकेलने के लिए रख सकते हैं (चेतावनी: इसके लिए बस जारी किए गए Git संस्करण 1.6.4 की आवश्यकता है)।


10
  1. git remote rm origin

  2. git remote -v यह कोई रिपॉजिटरी नाम प्रदर्शित नहीं करेगा

  3. git remote add origin git@github.com:username/myapp.git

  4. git push origin master यह प्रक्रिया शुरू करेगा और नई शाखा का निर्माण करेगा। आप देख सकते हैं कि आपका काम जीथब को धक्का दे गया है।


8

आपको अपने मौजूदा "मूल" रिमोट को निकालने की जरूरत नहीं है, बस अपने रिमोट ऐड के लिए "मूल" के अलावा किसी अन्य नाम का उपयोग करें

git Remote add github git@github.com: myname / oldrep.git



6

मुझे वही मुद्दा मिला, और यहाँ मैंने कुछ शोध करने के बाद इसे कैसे तय किया:

  1. विंडोज के लिए GitHub डाउनलोड करें या कुछ इसी तरह का उपयोग करें, जिसमें एक शेल शामिल है
  2. Git Shellकार्य मेनू से खोलें । यह Git कमांड सहित एक पॉवर शेल खोलेगा।
  3. शेल में, अपने पुराने रिपॉजिटरी में स्विच करें, जैसे cd C:\path\to\old\repository
  4. पुरानी रिपॉजिटरी की स्थिति दिखाएं

    • git remote -vलाने के लिए टाइप करें दूरस्थ पथ और दूरस्थ पुश करें। यदि आपका स्थानीय भंडार दूरस्थ से जुड़ा है, तो यह कुछ इस तरह दिखाई देगा:

      मूल https: //user@bitbucket.org/team-or-user-name/myproject.git (fetch) मूल https: //user@bitbucket.org/team-or-user-name-myproject.git (पुश)

    • यदि यह जुड़ा नहीं है, तो यह originकेवल दिखा सकता है ।

  5. अब उपयोग करके स्थानीय रिपॉजिटरी से रिमोट रिपॉजिटरी को हटा दें

    git remote rm origin
    
  6. चरण 4 के साथ फिर से जांचें। यह originकेवल भ्रूण और धक्का पथ के बजाय दिखाना चाहिए ।

  7. अब जब आपका पुराना रिमोट रिपॉजिटरी डिस्कनेक्ट हो गया है, तो आप नया रिमोट रिपॉजिटरी जोड़ सकते हैं। अपने नए भंडार से कनेक्ट करने के लिए निम्नलिखित का उपयोग करें।

नोट: यदि आप Bitbucket का उपयोग कर रहे हैं, तो आप पहले Bitbucket पर एक प्रोजेक्ट बनाएंगे। निर्माण के बाद, Bitbucket आपके रिपॉजिटरी को रिमोट पर धकेलने के लिए सभी आवश्यक Git कमांड को प्रदर्शित करेगा, जो कि अगले कोड स्निपेट के समान है। हालाँकि, यह अन्य रिपॉजिटरी के लिए भी काम करता है।

cd /path/to/my/repo # If haven't done yet
git remote add mynewrepo https://user@bitbucket.org/team-or-user-name/myproject.git
git push -u mynewrepo master # To push changes for the first time

बस।


5

जब मैं पहली बार Bitbucket का उपयोग कर रहा था तो मुझे यही समस्या थी

मेरी समस्या यह थी कि मुझे कुछ स्व-परिभाषित के लिए मूल शब्द को बदलने की आवश्यकता थी। मैंने एप्लिकेशन के नाम का उपयोग किया। इसलिए:

git remote add AppName https://someone@bitbucket.org/somewhere/something.git

4

आपको दूरस्थ रिपॉजिटरी का नाम बदलकर कुछ और करना चाहिए।

git remote add origin git@github.com:myname/oldrep.git

सेवा

git remote add neworigin git@github.com:myname/oldrep.git

मुझे लगता है कि यह काम करना चाहिए।

हां, ये रिपॉजिटरी इनिट और एक नया रिमोट जोड़ने के लिए हैं। बस नाम बदलने के साथ।


3

आप रिपॉजिटरी नाम को भी बदल सकते हैं जिसे आप REPOHOME / .git / config फाइल में पुश करना चाहते हैं

(जहां रिपॉजिटरी रिपॉजिटरी के आपके स्थानीय क्लोन का रास्ता है)।



0

आप की जाँच करें originऔर अगर मौजूद नहीं है जोड़ने के लिए की जरूरत है।

if ! git config remote.origin.url >/dev/null; then
    git remote add origin git@github.com:john/doe.git
fi

फ़ाइल बनाएं check.sh, स्क्रिप्ट अपडेट करें अपने गिट रिपॉजिटरी URL को अपडेट करें और चलाएं ./check.sh


0

चरण 1

git remote rm origin

चरण 2

git remote add origin enter_your_repository_url

उदाहरण:

git remote add origin https://github.com/my_username/repository_name.git

-1

सबसे पहले, हटाए गए रिमोट के लिए कोड की इस पंक्ति को लिखें:

$ git remote rm origin

और फिर यह पंक्ति लिखें:

$ git remote add origin https://github.com/khadim321/React-Form.git

यह ठीक से काम कर रहा है।


कृपया अपने उत्तर को और अधिक मूल्य प्रदान करने के लिए और अधिक स्पष्टीकरण प्रदान करने का प्रयास करें
Zeina

मुझे यकीन नहीं है कि यह किसी को दूरस्थ उत्पत्ति के रूप में आपके जीथब रिपॉजिटरी में से एक को जोड़ने में मदद करता है। इस सवाल का एक दो बार पहले ही उत्तर दिया जा चुका है। इतनी कम गुणवत्ता वाला नया बनाने से पहले दूसरे प्रश्न की जाँच करें।
thmspl

-1

यदि आप github के अंदर एक ही प्रोजेक्ट के साथ एक नया रिपॉजिटरी बनाना चाहते हैं और पिछला रिमोट आपको ऐसा करने की अनुमति नहीं दे रहा है तो उस स्थिति में पहले Github पर उस रिपॉजिटरी को हटा दें। फिर आपको .it फ़ोल्डर C: उपयोगकर्ता को हटाने की आवश्यकता है। Shiva \ AndroidStudioProjects \ yourprojectname \ .it उस फ़ोल्डर को हटा दें , (सुनिश्चित करें कि आप छिपी हुई फ़ाइल पर क्लिक करें क्योंकि यह फ़ोल्डर छिपा हुआ है)

एंड्रॉइड स्टूडियो से माइनस (निकालें बटन) पर भी क्लिक करें सेटिंग-> वर्जन कंट्रोल को एंड्रॉइड से वर्जन कंट्रोल को हटाने के लिए यहां क्लिक करें और फिर आप नया रिपोजिटरी बना पाएंगे।

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