Github “ölümcül: uzak kaynak zaten var”


466

Michael Hartl Rails öğretici boyunca takip etmeye çalışıyorum ama bir hatayla karşılaştım.

Github'a kaydoldum ve yeni bir SSH anahtarı yayınladım ve yeni bir depo hazırladım. Ancak terminalde bir sonraki satıra girdiğimde şu hatayı alıyorum:

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

Bu sorunla karşılaşan başka kimse var mı diye merak ettiniz mi?


Git deposunu henüz oluşturduysanız, .git/configbaşlangıç ​​noktasının henüz bildirilmediğini görmek için dosyaya bakın.
Denys Séguret

3
Aynı sorunla karşı karşıyaydım ve "git remote rm origin" komutunu kullandıktan sonra git remote add origin URL komutunu kullanıyorum.
Akhzar Nazir

@AkhzarNazir lütfen bunu cevap olarak ekleyin. Benim için çalıştı.
Pamela Sillah

Yanıtlar:


896

TL; DR mevcut uzaktan kumandayı güncellemelisiniz:

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

Uzun versiyon:

Hata mesajının gösterdiği gibi, zaten aynı adla yapılandırılmış bir uzaktan kumanda var. Böylece yeni uzaktan kumandayı farklı bir adla ekleyebilir veya ihtiyacınız yoksa mevcut uzaktan kumandayı güncelleyebilirsiniz:

Örneğin (sisteminizde zaten var olan) githubyerine yeni bir uzaktan kumanda eklemek originiçin aşağıdakileri yapın:

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

Yine de, öğreticinin "orijini" gördüğünüz her yerde "github" ile değiştirmeniz gerekir . Mesela $ git push origin masterşimdi olmalı $ git push github master.

Ancak, originzaten var olanın ne olduğunu görmek istiyorsanız, bir yapabilirsiniz $ git remote -v. Bunun bir hatayla olduğunu düşünüyorsanız, bunu şu şekilde güncelleyebilirsiniz:

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

5
Yeni deposunda neden menşe var? Hatırlatması gereken yeni bir takma ad oluşturmak yerine sorunu düzeltmelidir (örneğin, kaynağın github için doğru takma ad olmasını sağlamak).
Denys Séguret

1
Tamam çalıştı ama sonra bir sonraki adıma gidin ve git push -u kökenli master terminal girdiğinizde aşağıdaki hatayı alıyorum: HATA: Depo bulunamadı. ölümcül: Uzak uç beklenmedik bir şekilde telefonu kapattı Bu ne anlama geliyor?
ppreyer

git remote -vÇıktılar ne yapar ? Ayrıca deneyebilir git push origin mastermisiniz?
Agis

16
git remote rm originpek işe yaramadı. Bu üretilen hata: config bölümüne 'remote.origin' kaldırılamadı
Andrew Savinykh

20
@zespri: kullanımgit remote set-url --add origin git@github.com/username/repo.git
eduncan911

342

Kısacası,

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

Çalıştı!

Şerefe!


kimse bunu açıklayabilir mi? git remote rm origin
Kick Buttowski

1
@KickButtowski rm, * nix içinde kullanılan remove komutuna referanstır. Bu komut, git'e "origin" adlı uzak sunucu ayrıntılarını "kaldırmasını" söyler.
soymak

Bunu 1 adımda yapabileceğiniz 2 adımda yapmanız gerekmez. Cevabımı görün.
Agis

37

Bu kadar yaygın hatayla karşılaşanlarınız için "ölümcül: uzak kökeni zaten var." Veya kökeni kaldırmaya çalıştığınızda ve "hata: remote.origin" yapılandırma bölümünü kaldıramadıysanız, yapmanız gereken şey başlangıç ​​noktasını manuel olarak ayarlayın.

Windows için POSH ~ Git PowerShell (ve Windows için GitHub 'uygulaması) bununla ilgili bir sorun var.

Ahtapotumu kurarken sık sık yaptığım gibi bununla karşılaştım. İşte böyle çalıştıracağım.

İlk olarak, uzaktan kumandalarınızı kontrol edin:

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

İlk önce kökenimin URL'si olmadığını not edeceksiniz. Kaldırmaya, yeniden adlandırmaya vb. Yapılan her girişim başarısız olur.

Bu nedenle, URL'yi manuel olarak değiştirin:

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

Ardından, git remote -vtekrar çalışarak çalıştığını onaylayabilirsiniz :

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)

Bu, GitHub, BitBucket GitLab, vb. İle ilgili yaşadığım düzinelerce git deposunu düzeltti.


2
Bu benim için çalıştı. Teşekkürler @ eduncan911. Github komutları, komut satırında yeni bir havuz oluşturmak için bir "git init" yapmayı belirtir. Bu, bu PS arayüzünü kullanarak URL'si olmayan bir başlangıç ​​kaynağı oluşturur.
mikekidder

Ah yah, bu başka bir sorun ve bunu neden yapmak zorundasın. +1 Belki bunu github'da POSH Git'e bildirmeliyiz.
eduncan911

Gitlab kullanırken URL'yi nasıl bulabilirim?
Madmenyo

1
@MennoGouw Bunun konu dışı bir soru olduğunu düşünüyorum; ancak genellikle Repo'nun kontrol panelinde / evindedir. Aynı zamanda proje ayarlarında da var.
eduncan911

36

Hangi uzak havuzlara bağlanmak için yapılandırıldığınızı görebilirsiniz

git remote -v

Bu, şu biçimde bir liste döndürür:

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

Bu, orijinal 'köken' in neye işaret ettiğini anlamanıza yardımcı olabilir.

-V ile gördüğünüz uzak bağlantıyı korumak istiyorsanız, ancak öğreticinizin repo'su için 'github'ı (veya başka bir adı) hatırlamak zorunda kalmadan Rails öğreticisini takip etmek istiyorsanız, diğer deponuzu komut:

git remote rename [current name] [new name]

de olduğu gibi:

git remote rename origin oldrepo

Daha sonra öğreticinize devam edebilmeniz gerekir.


35

İlk önce şunları yapın:

git remote rm origin

sonra

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

ve işte! Benim için çalıştı!


Kökeni neden kaldırmalıyım? Menşe yerine herhangi bir şey eklememizin bir yolu var mı?
Abhils

28

Özel durumda, şablon olarak kullandığınız eski bir depodan başlayarak yeni bir havuz oluşturuyorsunuz (Bu sizin durumunuz değilse bunu yapmayın). Eski deponun git dosyalarını tamamen silin, böylece yeni bir tane başlatabilirsiniz:

rm -rf .git

Ve her zamanki gibi yeni bir git deposunu yeniden başlatın:

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

Yerel depolarınıza hangi uzak depoları bağladığınızı kontrol etmeniz gerekirse, bir cmd vardır:

git remote -v

Şimdi uzaktan repoyu (örneğin, kökenini) kaldırmak istiyorsanız, yapabileceğiniz şey:

git remote rm origin

Bu, bir yanıttan çok bir yoruma benziyor. Biraz daha temsilcisi ile yorum gönderebileceksiniz .
Nathan Tuggy

@NathanTuggy Hayır, tam bir cevap ve benim düşünceme göre, bu konudaki en popüler olandan daha doğrudan.
daOnlyBG

@daOnlyBG: Gördüğümde cevabın nasıl göründüğünden emin değilim, çünkü yorumlar ödemesiz dönemlerde kilitlenmişti (ve bu nedenle sessizce düzenlenmiş olabilir). Ama şimdi, tamamen makul, katılıyorum.
Nathan Tuggy

@NathanTuggy Woah, bir zamanlar sessiz düzenlemeler olduğunu bilmiyordu. Bu açıklar.
daOnlyBG

7

Bu hata mesajı git dizininizde zaten bir uzaktan kumandanızın olduğunu gösterir. Bu uzaktan kumandadan memnunsanız, kodunuzu zorlayabilirsiniz. Değilse veya sadece zorlayamıyorsanız:

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

Voilà!


7

Kavramı, remoteuzak deponuzun URL'sidir.

Bu URL'yi gösteren originbir takma addır. Dolayısıyla, her seferinde depomuza bir şey göndermek istediğimizde URL'nin tamamını yazmak yerine, sadece bu takma adı kullanırız ve şunu çalıştırırız:

git push -u origin master

İçin git'e söylemek pushbizim bizim kod yerel usta şube için uzaktan kökenli depo .

Biz her bir depo klonlamak , git varsayılan olarak bizim için bu takma adı oluşturur. Ayrıca ne zaman yeni bir depo oluştursak , sadece kendimiz yaratırız.

Durum ne olursa olsun, bu adı her zaman istediğimiz gibi değiştirebiliriz:

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

Git uygulamasının istemci tarafında (makinemizde) değiştiğinden, uzak depomuzda da geliştirme sürecimizdeki hiçbir şeyi etkilemez. Unutmayın, bu sadece adrese işaret eden bir isimdir .

Takma adı yeniden adlandırarak burada değişen tek şey, depomuza her şey ittiğimizde bu yeni adı bildirmemiz gerektiğidir.

git push -u my-remote-alias master

Açıkçası, tek bir isim iki farklı adrese işaret edemez. Bu yüzden bu hata mesajını alıyorsunuz. originYerel makinenizde zaten bir takma ad var . Kaç takma adınız olduğunu ve ne olduğunu görmek için bu komutu başlatabilirsiniz:

git remote -v

Bu, sahip olduğunuz tüm diğer adları ve karşılık gelen URL'leri gösterir.

Bunu çalıştırmak isterseniz bunları da kaldırabilirsiniz:

git remote rm my-remote-alias

Kısacası:

  • zaten neyin olduğunu öğren,
  • bunları kaldırın veya yeniden adlandırın,
  • yeni takma adlarınızı ekleyin.

Mutlu kodlama.


5

github'a yüklediğiniz gibi başka bir depolama alanı için proje eklediyseniz ve bitbucket'e yüklerseniz, bu tür bir Hata gösterir.

Hata nasıl kaldırılır: projenizdeki git-hub dosyasını silin ve ardından aşağıdaki adımları tekrarlayın ...

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

Ayrıca komutu git başlatılmadan dizinde çalıştırırsanız da olabilir. İlk önce durum buysa:

git init

4

git kullanmak için olmalısın

kök

değilse sudo kullanın

menşei kaldırmak için:

git uzaktan kökeni kaldır

başlangıç ​​noktası eklemek için:

git uzaktan kökeni ekle http: // giturl


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

    Bu komutta kaynak komutun bir parçası değildir, sadece uzak deponuzun adıdır. İstediğiniz herhangi bir ismi kullanabilirsiniz.

    • Önce aşağıdaki komutu kullanarak içerdiklerini kontrol edebilirsiniz

    $ git remote -v

    Size böyle bir sonuç verir 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)

    uzak depo yolunuzu içeriyorsa, yeniden kaynak eklemeden doğrudan buna geçebilirsiniz

    • Uzak depo yolunuzu sabitlemiyorsa

    Ardından farklı bir adla yeni bir kaynak ekleyebilir ve bunu itmek için kullanabilirsiniz $ git remote add origin101 git@gitlab.com:abc/backend/abc.git

    Veya varolan kaynak adını yeniden adlandırabilirsiniz

    git remote rename origin destination

    komutun altındaki ateş tekrar

    $ git remote -v

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

    Bu kaynak adını kullanabilmeniz için mevcut depo adınızı değiştirir

    Ya da sadece mevcut kökeninizi kaldırabilir ve kökeninizi ekleyebilirsiniz

    git remote rm destination


3

Bunu dene

  • cd mevcut_po
  • uzak uzaktan yeniden adlandırma kökeni eski kökeni

Abi teşekkürler, bu benim için işe yarayan tek şey.
Akshat Tamrakar

2

pencerelerde git bash kullanarak git hun'a depo eklerken aynı hatayla karşı karşıya

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

ölümcül: uzak kökeni zaten var.

fatal: remote origin already exists.

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

hata: bazı referansları ' https://github.com/axaysushir/meditation_app_using_js.git ' adresine iletemedi

Aşağıdaki komutu izleyerek havuzu güncelleyin

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

sonra git remote add github komutunu kullanarak depo ekleyin.

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

Ve sonra git push origin master yerine aşağıdaki komutu yazın, bu deponuzu github'a yükleyecektir

$ git push github master

2

zaten bu komutu kullanıyorsa başlangıç ​​noktasını güncelleyin

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

0

İlk kontrol Kaç takma adınız olduğunu ve bunların ne olduğunu görmek için git remote -v komutunu başlatabilirsiniz.

Sonra hangi depoda olduğunuzu görün sonra git remote set-url --add [Sonra repositpory bağlantınız] deneyin push -u origin master


0

En azından bash'da, komutun çıkış kodunun dönüş değerini 0 olmaya zorlayabiliriz

Eski uzaktan kumandayı çıkarıp tekrar ekleyebilirsiniz

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

0

GUI aracılığıyla yapmak istiyorsanız aşağıdakileri yapın:

  1. Proje klasörünüzde "gizli dosyaların" görünür olduğundan emin olun
  2. .Git dizinine git
  3. Config.txt dosyasındaki url dosyasını düzenleyin ve dosyayı kaydedin!
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.