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


465

मैं माइकल हार्टल रेल्स ट्यूटोरियल का अनुसरण करने की कोशिश कर रहा हूं, लेकिन मैं एक त्रुटि के बीच चला गया हूं।

मैंने गितुब पर साइन अप किया और एक नई एसएसएच कुंजी जारी की और एक नया भंडार बनाया। लेकिन जब मैं टर्मिनल में अगली पंक्ति दर्ज करता हूं तो मुझे निम्नलिखित त्रुटि मिलती है:

Parkers-MacBook-Pro:.ssh ppreyer$ git remote add origin git@github.com:ppreyer/first_app.git
fatal: remote origin already exists.

जरा सोचिए कि क्या कोई और इस समस्या से पार पा चुका है?


यदि आपने अभी तक गिट रिपॉजिटरी बनाई है, तो .git/configफ़ाइल को देखें कि क्या मूल अभी तक घोषित नहीं हुआ है।
डेसीस सेग्रुट

3
मैं एक ही समस्या का सामना कर रहा था और "git Remote rm Origin" कमांड का उपयोग कर रहा था, फिर कमांड git रिमोट ऐड ओरिजिनल URL का उपयोग करें।
अख़्तर नज़ीर

@AkhzarNazir कृपया इसे उत्तर के रूप में जोड़ें। इसने मेरे लिए काम किया।
पामेला सिल्ला

जवाबों:


893

TL; DR आपको बस मौजूदा रिमोट को अपडेट करना चाहिए:

$ git remote set-url origin git@github.com:ppreyer/first_app.git

दीर्घ संस्करण:

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

एक नया रिमोट जोड़ने के लिए, उदाहरण के लिए (जो स्पष्ट रूप से आपके सिस्टम में पहले से मौजूद है) के githubबजाय origin, निम्न कार्य करें:

$ git remote add github git@github.com:ppreyer/first_app.git

यद्यपि याद रखें, ट्यूटोरियल में हर जगह आपको "मूल" दिखाई देता है, आपको इसे "जीथब" से बदलना चाहिए । उदाहरण के लिए $ git push origin masterअब होना चाहिए $ git push github master

हालाँकि, यदि आप यह देखना चाहते हैं कि originजो पहले से मौजूद है वह आप कर सकते हैं $ git remote -v। यदि आपको लगता है कि यह किसी त्रुटि के कारण है, तो आप इसे इस तरह से अपडेट कर सकते हैं:

$ git remote set-url origin git@github.com:ppreyer/first_app.git

5
उसके नए भंडार में मूल क्यों होगा? उसे समस्या को ठीक करना चाहिए (उदाहरण के लिए मूल जीथुब करने के लिए सही उपनाम है) एक नया उपनाम बनाने के बजाय उसे याद दिलाना होगा।
डेनिस सेगुरेट

1
ठीक है कि काम किया है, लेकिन फिर जब मैं अगले चरण पर जाता हूं और टर्मिनल में git push -u मूल मास्टर दर्ज करता हूं तो मुझे निम्नलिखित त्रुटि मिलती है: त्रुटि: रिपोजिटरी नहीं मिली। घातक: दूरस्थ अंत अप्रत्याशित रूप से लटका हुआ है इसका क्या मतलब है?
पैपायर

git remote -vआउटपुट क्या करता है ? इसके अलावा, क्या आप कोशिश कर सकते हैं git push origin master?
एजिस

16
git remote rm originकाफी काम नहीं किया। इसने त्रुटि
एंड्रयू

20
@zespri: उपयोगgit remote set-url --add origin git@github.com/username/repo.git
eduncan911

342

संक्षेप में,

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

काम किया!

चीयर्स!


क्या कोई इसे समझा सकता है? git दूरस्थ आरएम उत्पत्ति
किक बट्सॉस्की

1
@KickButtowski rm * nix में प्रयुक्त रिमूवल कमांड के संदर्भ में है। इसलिए यह कमांड "मूल" नाम के रिमोट सर्वर विवरण को "हटाने" के लिए गिट को बताता है।
लूट

जब आप इसे कर सकते हैं तो 2 चरणों में ऐसा करने की आवश्यकता नहीं है। 1. मेरा उत्तर देखें।
एजिस

37

आपमें से जो इतनी सामान्य त्रुटि में चल रहे हैं "घातक: दूरस्थ मूल पहले से मौजूद है।", या जब मूल को हटाने की कोशिश कर रहे हैं और आपको "त्रुटि: कॉन्फ़िगरेशन अनुभाग को दूर नहीं कर सका।", तो आपको क्या करने की आवश्यकता है? मूल रूप से सेट करें।

विंडो का POSH ~ Git for Windows PowerShell (और GitHub for Windows 'ऐप) के साथ एक समस्या है।

मैं इस में भाग गया, जैसे मैं ऐसा अक्सर करता हूं, फिर से जब मैं अपनी ऑक्टोप्रेस की स्थापना करता हूं। तो, यहाँ है कि मैं इसे कैसे काम कर रहा हूँ।

सबसे पहले, अपने रिमोट की जाँच करें:

C:\gd\code\octopress [source +2 ~3 -0 !]> git remote -v
octopress       https://github.com/imathis/octopress.git (fetch)
octopress       https://github.com/imathis/octopress.git (push)
origin

आप पहले ध्यान देंगे कि मेरे मूल में कोई url नहीं है। इसे हटाने का कोई भी प्रयास, इसका नाम बदलना, आदि सभी विफल हो जाते हैं।

इसलिए, मैन्युअल रूप से url बदलें:

git remote set-url --add origin https://github.com/eduncan911/eduncan911.github.io.git

फिर आप इसकी पुष्टि कर सकते हैं कि यह git remote -vफिर से काम कर रहा है :

C:\gd\code\octopress [source +2 ~3 -0 !]> git remote -v
octopress       https://github.com/imathis/octopress.git (fetch)
octopress       https://github.com/imathis/octopress.git (push)
origin  https://github.com/eduncan911/eduncan911.github.io.git (fetch)
origin  https://github.com/eduncan911/eduncan911.github.io.git (push)

इसने दर्जनों git repos को तय किया है जो मैंने GitHub, BitBucket GitLab, आदि के साथ जारी किए हैं।


2
इसने मेरे लिए काम किया। धन्यवाद @ eduncan911 Github निर्देश देता है कि कमांड लाइन पर एक नया रिपॉजिटरी बनाने के लिए "git init" करें। यह एक मूल रिमोट बनाता है जिसका कोई URL उस PS इंटरफ़ेस का उपयोग नहीं करता है।
मिकीकेडर 18

आह, यह एक और गोटा है और आपको ऐसा क्यों करना है। +1 शायद हमें गितुब पर पोस जीट को इसकी सूचना देनी चाहिए।
eduncan911

मैं gitlab का उपयोग करते समय url कैसे खोजूं?
मदमेनियो

1
@ मेनोउव मुझे लगता है कि यह एक ऑफ-टॉपिक प्रश्न है; लेकिन, आमतौर पर यह रेपो के डैशबोर्ड / होम पर होता है। यह इस परियोजना के लिए भी सेटिंग्स में है।
eduncan911

36

आप देख सकते हैं कि किन दूरस्थ रिपॉजिटरी को आप से कनेक्ट करने के लिए कॉन्फ़िगर किया गया है

git remote -v

इस प्रारूप में एक सूची वापस आ जाएगी:

origin  git@github.com:github/git-reference.git (fetch)
origin  git@github.com:github/git-reference.git (push)

इससे आपको यह पता लगाने में मदद मिल सकती है कि मूल 'मूल' किस ओर इशारा करता है।

यदि आप दूरस्थ कनेक्शन को -v के साथ देखते हैं, लेकिन फिर भी आप अपने ट्यूटोरियल के रेपो के लिए 'जीथब' (या किसी और नाम) को याद किए बिना रेल ट्यूटोरियल का अनुसरण करना चाहते हैं, तो आप अपने अन्य रिपॉजिटरी का नाम बदल सकते हैं । आदेश:

git remote rename [current name] [new name]

जैसे की:

git remote rename origin oldrepo

फिर आपको अपने ट्यूटोरियल को फिर से शुरू करने में सक्षम होना चाहिए।


34

पहले एक करें:

git remote rm origin

फिर

git remote add origin https://github.com/your_user/your_app.git

और आवाज! मेरे लिए काम किया!


उत्पत्ति को क्यों हटाया जाए? क्या कोई तरीका है जिससे हम उत्पत्ति के बजाय कुछ भी जोड़ सकते हैं?
अभिलाषा

27

विशेष मामले में कि आप एक पुराने भंडार से शुरू होने वाले एक नए भंडार का निर्माण कर रहे हैं जिसे आपने टेम्पलेट के रूप में उपयोग किया है (यदि यह आपका मामला नहीं है तो ऐसा न करें)। पुरानी रिपॉजिटरी की गिट फाइलों को पूरी तरह से मिटा दें ताकि आप एक नई शुरुआत कर सकें:

rm -rf .git

और फिर हमेशा की तरह एक नया गिट रिपॉजिटरी फिर से शुरू करें:

git init
git add whatever.wvr ("git add --all" if you want to add all files)
git commit -m "first commit"
git remote add origin git@github.com:ppreyer/first_app.git
git push -u origin master

13

यदि आपको यह जांचने की आवश्यकता है कि आपने अपने स्थानीय रेपो के साथ कौन सा रिमोट रिपोज किया है, तो एक cmd:

git remote -v

अब यदि आप दूरस्थ रेपो (कहना, उत्पत्ति) को हटाना चाहते हैं तो आप क्या कर सकते हैं:

git remote rm origin

यह उत्तर की तुलना में टिप्पणी की तरह दिखता है। थोड़ा और प्रतिनिधि के साथ, आप टिप्पणी पोस्ट करने में सक्षम होंगे
नाथन तुग्गी

@NathanTuggy नहीं, यह एक पूर्ण उत्तर है, और मेरी विनम्र राय में, इस धागे पर सबसे लोकप्रिय एक से अधिक प्रत्यक्ष है।
daOnlyBG

@daOnlyBG: मुझे यकीन नहीं है कि जब मैंने देखा, तो इसका जवाब कैसा लग रहा था, क्योंकि इससे पहले कि यह अनुग्रह अवधि में बंद थी (और इसलिए इसे चुपचाप संपादित किया गया हो सकता है)। लेकिन अब, यह उचित रूप से पूरा हो गया है, मैं सहमत हूं।
नाथन तुग्गी

@NathanTuggy वाह, पता नहीं था कि एक समय में एक बार मूक संपादन होते थे। वह समझाता है।
daOnlyBG

7

वह त्रुटि संदेश इंगित करता है कि आपके पास पहले से ही आपके गिट डायरेक्टरी में रिमोट है। यदि आप उस रिमोट से संतुष्ट हैं, तो आप अपने कोड को आगे बढ़ा सकते हैं। यदि नहीं या यदि आप केवल धक्का नहीं दे सकते हैं:

git remote remove origin
git remote add origin git@github.com:ppreyer/first_app.git

Voilà!


7

की अवधारणा remoteबस आपके दूरस्थ रिपॉजिटरी का URL है।

originएक है उर्फ कि URL की ओर इशारा। इसलिए हर बार पूरे URL को लिखने के बजाय हम अपने रिपॉजिटरी के लिए कुछ करना चाहते हैं, हम बस इस उपनाम का उपयोग करते हैं और चलाते हैं:

git push -u origin master

pushहमारे स्थानीय मास्टर शाखा से दूरस्थ मूल रिपॉजिटरी के लिए हमारे कोड को बताने के लिए ।

जब भी हम एक रिपॉजिटरी को क्लोन करते हैं , तो गिट डिफ़ॉल्ट रूप से हमारे लिए यह उपनाम बनाता है। इसके अलावा, जब भी हम एक नया भंडार बनाते हैं, हम सिर्फ इसे अपना स्व बनाते हैं।

जो भी हो, हम इस नाम को हमेशा अपनी पसंद के अनुसार बदल सकते हैं, इसे चला सकते हैं:

git remote rename [current-name] [new-name]

चूँकि यह git एप्लिकेशन के क्लाइंट साइड (हमारी मशीन पर) में संग्रहीत होता है, इसलिए इसे बदलने से हमारी विकास प्रक्रिया में कुछ भी प्रभावित नहीं होगा, न ही हमारे रिमोट रिपॉजिटरी में। याद रखें, यह केवल एक पते की ओर इशारा करने वाला नाम है

केवल उपनाम बदलने से यहाँ एक ही चीज़ बदल जाती है, वह यह है कि हमें इस नए नाम को हर बार घोषित करना होगा जब हम अपने भंडार को कुछ धक्का देते हैं।

git push -u my-remote-alias master

जाहिर है एक ही नाम दो अलग-अलग पतों की ओर इशारा नहीं कर सकता। इसलिए आपको यह त्रुटि संदेश मिलता है। originआपके स्थानीय मशीन में पहले से ही एक उपनाम है । यह देखने के लिए कि आपके पास कितने उपनाम हैं और वे क्या हैं, आप इस आदेश को आरंभ कर सकते हैं:

git remote -v

यह आपको उन सभी उपनामों को दिखाएगा जो आपके पास संबंधित URL हैं।

यदि आप इसे चलाना पसंद करते हैं, तो आप उन्हें हटा सकते हैं:

git remote rm my-remote-alias

तो संक्षेप में:

  • पता करें कि आपके पास पहले से क्या है,
  • उन्हें हटाएं या उनका नाम बदलें,
  • अपने नए उपनाम जोड़ें।

खुश कोडिंग।


5

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

त्रुटि कैसे निकालें: अपनी परियोजना में गिट-हब फ़ाइल को हटा दें और फिर निम्नलिखित चरणों को दोहराएं ...

git init       
git remote add origin git@bitbucket.org:Yourname/firstdemotry.git  
git add -A  
git commit -m 'Message'  
git push -u origin master  

5

यह तब भी हो सकता है जब आप बिना आरंभ किए बिना डायरेक्टरी में कमांड चलाएं। अगर यह मामला पहले चला है:

git init

4

git का उपयोग करने के लिए आपको होना चाहिए

जड़

यदि नहीं तो sudo का उपयोग करें

उत्पत्ति को हटाने के लिए:

git रिमोट रिमूव ओरिजिन

मूल जोड़ने के लिए:

git रिमोट ऐड मूल http: // giturl


3
  • $ git remote add origin git@gitlab.com:abc/backend/abc.git

    इस कमांड उत्पत्ति में कमांड का हिस्सा नहीं है, यह सिर्फ आपके दूरस्थ रिपॉजिटरी का नाम है। आप किसी भी नाम का उपयोग कर सकते हैं।

    • पहले आप देख सकते हैं कि इसमें कमांड के नीचे क्या उपयोग है

    $ git remote -v

    यह आपको इस तरह से परिणाम देगा origin git@gitlab.com:abc/backend/abc.git (fetch) origin git@gitlab.com:abc/backend/abc.git (push) origin1 git@gitlab.com:abc/backend/abc.git (fetch) origin1 git@gitlab.com:abc/backend/abc.git (push)

    यदि इसमें आपका रिमोट रिपॉजिटरी पथ है तो आप फिर से मूल को फिर से जोड़ने के बिना सीधे पुश कर सकते हैं

    • यदि यह आपके दूरस्थ रिपॉजिटरी पथ के विपरीत नहीं है

    फिर आप अलग-अलग नाम के साथ नया मूल जोड़ सकते हैं और उपयोग कर सकते हैं जैसे धक्का देना $ git remote add origin101 git@gitlab.com:abc/backend/abc.git

    या आप मौजूदा मूल नाम का नाम बदलकर अपना मूल जोड़ सकते हैं

    git remote rename origin destination

    नीचे फिर से आग

    $ git remote -v

    destination git@gitlab.com:abc/backend/abc.git (fetch) destination git@gitlab.com:abc/backend/abc.git (push)

    यह आपके मौजूदा रेपो नाम को बदल देगा ताकि आप उस मूल नाम का उपयोग कर सकें

    या आप बस अपने मौजूदा मूल को हटा सकते हैं और अपने मूल को जोड़ सकते हैं

    git remote rm destination


3

इसे इस्तेमाल करे

  • सीडी मौजूदा_रेपो
  • git रिमोट का नाम पुराना पुराना है

भाई धन्यवाद, यह केवल एक चीज है जो मेरे लिए काम करती है।
तक्षकार

2

विंडोज़ पर गिट बैश का उपयोग करके gun hun में रिपॉजिटरी जोड़ते समय एक ही त्रुटि का सामना करना पड़ रहा है

 git remote add origin https://github.com/axaysushir/netflix_page_clone.git

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

fatal: remote origin already exists.

 ! [rejected]        master -> master (fetch first)

त्रुटि: कुछ रिफल्स को ' https://github.com/axaysushir/meditation_app_using_js.git ' पर धकेलने में विफल

निम्न आदेश द्वारा रिपॉजिटरी को अपडेट करें

$ git remote set-url origin https://github.com/axaysushir/netflix_page_clone.git

इसके बाद git रिमोट ऐड github का उपयोग करके रिपॉजिटरी जोड़ें, git रिमोट ऐड मूल की जगह

$ git remote add github https://github.com/axaysushir/netflix_page_clone.git

और फिर git पुश ओरिजिन मास्टर के बजाय निम्नलिखित कमांड लिखें यह आपके रिपॉजिटरी को github पर अपलोड करेगा

$ git push github master

2

यदि यह पहले से ही इस कमांड का उपयोग कर रहा है, तो मूल को अपडेट करें

git remote set-url origin https://github.com/SriramUmapathy/ReduxLearning.git

0

पहले जाँच करें कि आपके पास कितने उपनाम हैं और वे क्या हैं, आप इस कमांड git रिमोट -v को आरंभ कर सकते हैं

फिर देखें कि आप किस रिपॉजिटरी में हैं, फिर git रिमोट सेट-url --add [फिर अपना रिपॉजिटरी लिंक] git push -u ओरिजनल मास्टर आज़माएँ


0

कम से कम बैश होने पर, हम कमांड के एग्जिट कोड के रिटर्न वैल्यू को 0 कर सकते हैं

आप पुराने रिमोट को हटा सकते हैं और इसे फिर से जोड़ सकते हैं

git remote remove $1 || true
git remote add $1 $2

0

यदि आप GUI के माध्यम से करना चाहते हैं, तो निम्नलिखित कार्य करें:

  1. सुनिश्चित करें कि "छिपी हुई फाइलें" आपके प्रोजेक्ट फ़ोल्डर में दिखाई दे रही हैं
  2. .Git निर्देशिका पर जाएं
  3. Config.txt फ़ाइल में url फ़ाइल को संपादित करें और फ़ाइल को सहेजें!
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.