Git'ten kafa karıştırıcı hata mesajı


95

Bu mesajı Git'ten aldım:

Uzak 'başlangıç ​​noktasından' almak istediniz, ancak bir dal belirtmediniz. Bu, geçerli dalınız için varsayılan olarak yapılandırılmış uzaktan kumanda olmadığından, komut satırında bir dal belirtmelisiniz.

Bunu kimse açıklayabilir mi? ve daha da önemlisi, nasıl düzeltileceği?

Yanıtlar:


95

Git'e "kaynak" uzak depolardan hangi dalı çekmek istediğinizi söylemelisiniz.

Sanırım varsayılan şubeyi (ana) istiyorsun, bu yüzden git pull origin masterprobleminizi çözmelisiniz.

Bkz git help branch, git help pullve git help fetch detaylı bilgi için.


2
Çalışması için "ana" dalı kontrol etmem (seçili dal yoktu) ve çekmem gerekiyordu, bu da sorunu çözdü.
cinek

@cinek: Evet, mevcut dalıgit pull çeker ve birleştirir, böylece davranışı tamamen hangi dalın teslim alındığına bağlıdır ve ayrı bir KAFA ile (dal kontrol edilmemiş), hangi dalı çekeceğini bilmesinin bir yolu yoktur.
Cascabel

@cinek: Git'te yeniydin sanırım, bu yüzden şube yöneticisinde tamamen standart bir durumda olduğunu kabul ediyorum, benim hatam :-).
p4bl0

87

Bunu düzeltmek için, masterdalda olduğunuzu ve masterdalı originuzaktan kumandadan çekmek istediğinizi varsayarak , yeterince yeni Git sürümlerinde (1.8 veya daha yeni):

git branch -u origin/master master

(Diğer şubeler ve / veya uzaktan kumandalar için benzer şekilde.)

Bunu bir itme ile birleştirebilirseniz, daha da kısadır:

git push -u origin master

Bundan sonra bir sade git pull/ git pushbeklediğinizi yapacaktır.


Git 1.7 serisi sırasında, git branchyoktu -uanahtarı (sadece git pushyaptığımız) ve bunun yerine çok daha uzun kullanmak zorunda kaldı --set-upstream:

git branch --set-upstream master origin/master

İle karşılaştırıldığında argümanların tersine döndüğüne dikkat edin -u. Bu emri bir kereden fazla bozdum.


Bu arada, bunların tümü aşağıdakileri yapmanın kısa yoludur ve bunu hala açıkça yapabilirsiniz:

git config branch.master.remote origin
git config branch.master.merge refs/heads/master

1.7 önce, vardı bu şekilde yapmak için.


En üstteki komutun (en azından benim Git sürümümde) "origin" adlı bir dalın yukarı akışını "başlangıç ​​/ ana" olarak ayarladığını düşünüyorum. Yerel olarak şubeniz "usta" olarak adlandırılıyorsa, şunu isteyeceğinizi düşünüyorum:git branch --set-upstream master origin/master
Evan Donovan

İlginç bir şekilde, bu -useçenek git branch1.8.5.3 sürümümde belgelenmemiş, bu da onu burada daha da önemli hale getiriyor. Ve not ettiğiniz gibi, seçenek 1.7. * Sürümünde mevcut değildi. Bunun -ukısaltması --set-upstreamolduğundan, argümanlarının sırası --set-upstream@ EvanDonovan'ın yorumu nedeniyle yaptığınız gibi tersine çevrilmemeli mi?
Ocak

Ancak, gösterdiğiniz komutu kullandığımda ( git branch -u origin/master master) benim için beklendiği / amaçlandığı gibi çalışıyor: "Şube yöneticisi, başlangıç ​​noktasından uzak şube yöneticisini izlemek için ayarlandı."
Ocak

1
@hobs: Bu aslında Git'in bir sapkınlığı. -uAnahtar aslında değil kısa formu --set-upstream. Argümanlarının sırası, için olan sıralamadan etkili bir şekilde ters çevrilmiştir --set-upstream. Sanırım daha sonra --set-upstream-to(“-to” ya dikkat edin) tanıtıldı, bu -uşimdi aslında kısa biçimidir.
Aristo Pagaltzis

Vaov! Gerçekten kafa karıştırıcı. Bunu benim için çözdüğün için teşekkürler.
ocaklar

3

Mesaj tam olarak ne hakkında olduğunu söylüyor. Mevcut şubeniz, menşe şubesi ile ilişkili değil (takip etmiyor) . Yani git ne çekeceğini bilmiyor.

Ne yapalım? Bu bağlıdır...

En olağan durumda , kaynağın yöneticisinden klonlanmış olan ana birimden dallanmış bazı yerel şube xyz üzerinde çalışıyorsunuz . Bunu çözmenin olağan yolu, ana konuma geçmek ve onu orijin ile senkronize etmek için çekip sonra xyz ve .rebase master

Ama senin durumunda başka bir şey yapmak isteyebilirsin. Şubelerinizin ve uzaktan kumandalarınızın ayrıntılarını ve bunları nasıl kullanmak istediğinizi bilmeden bilemeyiz.

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.