Merhaba! Ben Aykhan, 1999 doğumlu bir Azerbaycanlıyım ve 2017 yılından bu yana programlamayla ilgileniyorum. Teknolojinin büyülü dünyası beni her zaman etkilemiştir ve bu merakımı kendi blogumda paylaşarak daha geniş bir kitleyle buluşturmayı amaçlıyorum.
'Ölümcül: uzak kaynak zaten var' hatası nedir?
fatal: remote origin already exists
origin
GitHub'dan bir depoyu veya harici bir uzak depoyu yerel makinenize kopyaladığınızda ve ardından işaret eden URL'yi kendi deponuza güncellemeye çalıştığınızda ortaya çıkan yaygın bir Git hatasıdır .
Kubernetes bağlamında, düzenlemeleri Git depolarını içerecek şekilde yapılandırdığınızda hata oluşabilir. Örneğin, şunu kullanarak:git remote add origin [url].gits
fatal: remote origin already exists
zaten yapılandırılmış bir URL'ye sahip klonlanmış depodan kaynaklanır. Özellikle, veri havuzu kaynağının bulunduğu orijinal profile yönlendiren bir URL.
Git'te uzak bir kaynak nedir?
remote origin
, adından da anlaşılacağı gibi, kodun uzaktan saklandığı yerdir. Herkesin kodu gönderdiği ve kodu aldığı merkezi sunucu veya bölgedir.
Uzak depolar, projenizin GitHub, Bitbucket, GitLab ve Assembla gibi Git uyumlu platformlarda barındırılan sürümleridir. origin
ana bilgisayar sitesinin URL'sini ilişkilendirmek için kullanılan standart ve genel tanıtıcıdır.
Örneğin, remote
adında alternatif bir URL'niz olabilir dev
, bu daha sonra aynı kod için ayrı bir havuzun tanıtıcısı olur.
Çalıştırdığınızda git remote -v
, tanıtıcıların ve ilişkili URL'lerin bir listesini alırsınız. Dolayısıyla, aynı uzaktan kumanda için farklı işleyicileriniz varsa, konsol çıktısı şöyle görünebilir:
D:\GitHub\git remote -v
Origin https://github.com/prod_repo/projectx.git (getir)
Origin https://github.com/prod_repo/projectx.git (push)
dev https://github.com/dev_repo/projectx .git (getir)
dev https://github.com/dev_repo/projectx.git (push)
Bu, aşağıdaki komutu çalıştırabileceğiniz anlamına gelir:git push dev master
Yapılan değişiklikler şubeye değil master
ile ilişkili URL'de yukarı itilir .dev
origin
'Ölümcül: uzak kaynak zaten var' sorununu çözme
Çoğu geliştirme ortamı için, origin
kullanılan varsayılan işleyicidir. İşte çözmenin 3 yolu fatal: remote origin already exists
.
1. Mevcut Uzaktan Kumandayı Kaldırın
remote
barındırılan depoyu ifade eder. Origin, bu uzaktan kumandanın nerede olduğunu gösteren işaretçidir. Çoğu zaman, origin
yerel bir depoda bulunan tek işaretçidir.
Eklenen işaret eden URL'yi değiştirmek isterseniz origin
, mevcut olanı kaldırabilir origin
ve ardından doğru URL ile tekrar ekleyebilirsiniz.
İşleyicinizi kaldırmak için, remove
on komutunu ve remote
ardından işleyici adını kullanın - ki bu bizim durumumuzda origin
.
İşte bir örnek: git remote remove origin
İşleyicinin düzgün şekilde silindiğini kontrol etmek için aşağıdakileri çalıştırın:git remote -v
Ya boş bir liste alacaksınız ya da menşei listeden kaldırılmış olarak projeye bağlı olan uzak işleyicilerin bir listesini alacaksınız. Artık hatayla karşılaşmadan
çalıştırabilirsiniz .git remote add origin [url].git
fatal: remote origin already exists
2. Mevcut Uzaktan Kumandanın URL'sini Güncelleyin
Origin işleyicisini her zaman remote
. Fatal: remote Origin zaten mevcut sorununu çözmenin alternatif bir yolu, işleyicinin işaretleme URL'sini güncellemektir.
Bunu yapmak için set-url
komutu, ardından işleyici adını (bizim durumumuzda Origin) ve yeni URL'yi kullanabilirsiniz.
Mevcut bir kaynak URL'yi güncellemek için sözdizimi şöyledir:git remote set-url origin [new-url]
Bu tamamlandığında, artık yeni yapılandırılmış Git deposu konumundan kod gönderip çekebilirsiniz.
3. Mevcut Uzaktan Kumandayı Yeniden Adlandırın
Alternatif olarak, origin
başka bir şeyle yeniden adlandırabilirsiniz. Bu, yenisine yer açmak için işleyicinin işaret eden URL'sini silmek yerine, onu yeniden adlandırabilir ve orijinal ayrıntıları koruyabileceğiniz anlamına gelir.
Bunu yapmak için şu rename
komutu kullanın: remote
.
Örneğin, yeniden adlandırmak origin
istiyorsanız dev
, aşağıdaki komutu kullanabilirsiniz:git remote rename origin dev
Şimdi çalıştırdığınızda git remote -v
, işleyici olarak yerine dev alacaksınız origin
.
D:\GitHub\[some-repo]git remote -v
dev https://github.com/some_repo/projectx.git (getir)
dev https://github.com/some_repo/projectx.git (push)
origin
Bu , ekli işleyiciler listesine yenilerini eklemek için size yer verecektir . Böylece çalıştırdığınızda git remote add origin [url].git
, artık fatal: remote origin already exists
hata istemi almayacaksınız.
'Ölümcül: uzak kaynak zaten var' nasıl önlenir
Hata oluşmasını önlemek için , işleyicinin zaten var fatal: remote origin already exists
olup olmadığını kontrol edebilirsiniz . origin
Olmazsa, komutu çalıştırmak git add remote origin
bu sorunu üretmemelidir.
Burada dikkat edilmesi gereken en önemli şey origin
, yalnızca bir işleyicinin kısa adıdır. Gerçek uzak havuzun barındırıldığı URL'ye bir referanstır.
İşleyici origin
sadece standartlaştırılmış varsayılan olur. fatal: remote origin already exists
Bu kadar yaygın kılan da bu. Aynı yer tutucu adına sahip olması koşuluyla, hatanın kendisi herhangi bir işleyiciye karşı oluşabilir.
Var olup olmadığını kontrol etmek için, mevcut uzak işleyicilerin ve ilişkili URL'lerin bir listesini almak için origin
çalıştırın .git remote -v
Origin varsa, aşağıdakilerden birini yapabilirsiniz:
- aşağıdaki gibi komutla listeden
origin
kaldırın :remote
remove
git remote remove origin
- orijin işaretleme URL'sini şu şekilde güncelleyin
set-url
:git remote set-url origin [new-url]
- mevcut işleyiciyi komut
origin
yoluyla başka bir şeye yeniden adlandırın:rename
git remote rename origin [new-name]
fatal: remote origin already exists
Yukarıdaki kılavuzun, hatayı düzeltmek için uygulamanız gereken sorun giderme adımlarını daha iyi anlamanıza yardımcı olacağını umuyoruz .
Bunun, k8s günlüklerinizde ortaya çıkabilecek ve sistemin başarısız olmasına neden olabilecek birçok Git hatasından yalnızca biri olduğunu unutmayın. K8'lerin karmaşık ve dağınık doğası nedeniyle,
bu tür her bir başarısızlığın temel nedenini araştırmak stresli, kafa karıştırıcı ve zaman alıcı olabilir.
Bu nedenle, k8s sorun giderme süreçlerinizi kolaylaştırmak ve kısaltmak için tek bir gerçek kaynağı (SSOT) işlevi gören Komodor'u yarattık. Diğer özelliklerin yanı sıra şunları sunar:
- Zekayı değiştir: Her sorun bir değişimin sonucudur. Saniyeler içinde kimin neyi ne zaman yaptığını tam olarak anlamanıza yardımcı olabiliriz.
- Derinlemesine görünürlük: Tüm kod ve yapılandırma değişikliklerini, dağıtımları, uyarıları, kod farklarını, bölme günlüklerini vb. gösteren eksiksiz bir etkinlik zaman çizelgesi. Hepsi tek bir pencerede kolay detaya inme seçenekleriyle.
- Hizmet bağımlılıklarına ilişkin içgörüler: Hizmetler arası değişiklikleri anlamanın ve tüm sisteminizde dalgalanma etkilerini görselleştirmenin kolay bir yolu.
- Sorunsuz bildirimler: Mevcut iletişim kanallarınızla (örn. Slack) doğrudan entegrasyon, böylece ihtiyacınız olan tüm bilgilere ihtiyacınız olduğunda sahip olursunuz.