Bunun anlamı
Yukarı origin
akışınız — aradığınız uzaktan kumandanın — artık yok veya belki de hiç yoktu (sadece bu bilgilerden söylemek imkansız)feature/Sprint4/ABC-123-Branch
. Bunun özel bir nedeni var: birisi (muhtemelen siz değil ya da hatırlarsınız) diğer Git deposundaki dalı sildi.
Ne yapalım
Bu ne istediğinize bağlıdır . Aşağıdaki tartışma bölümüne bakın. Yapabilirsin:
- uzaktan kumandada şube oluşturma veya yeniden oluşturma veya
- yerel şubenizi silin veya
- aklınıza gelebilecek başka herhangi bir şey.
Tartışma
Çalışıyor olmalısınız git pull
(eğer çalışıyorsanız git merge
farklı bir hata mesajı alırsınız veya hiç hata mesajı almazsınız).
Çalıştırdığınızda git fetch
Git, yapılandırmanızın bölümünün url
altındaki satıra göre başka bir Git ile iletişim kurar [remote "origin"]
. Git bir komut (ishal Yani upload-pack
, başka şeylerin yanı sıra, gönderir) sizin Git tüm branşlarda bir listesini. Bunun git ls-remote
nasıl çalıştığını görmek için kullanabilirsiniz (deneyin, eğiticidir). İşte bu bir Git deposunda git
kendisi için çalışırken ne olsun bir snippet'i :
$ git ls-remote origin
From [url]
bbc61680168542cf6fd3ae637bde395c73b76f0f HEAD
60115f54bda3a127ed3cc8ffc6ab6c771cbceb1b refs/heads/maint
bbc61680168542cf6fd3ae637bde395c73b76f0f refs/heads/master
5ace31314f460db9aef2f1e2e1bd58016b1541f1 refs/heads/next
9e085c5399f8c1883cc8cdf175b107a4959d8fa6 refs/heads/pu
dd9985bd6dca5602cb461c4b4987466fa2f31638 refs/heads/todo
[snip]
refs/heads/
Girişler uzaktan kumandadaki mevcut dalların tümünü listelemek, 1 tekabül birlikte (ilişkin kimlikleri taahhüt refs/tags/
girdileri kimlikleri kaydedilmesini yerine nesneleri etiketine işaret edebilir).
Kişisel Git bu dal adlarının her biri alır ve değiştirir göre bunu fetch
aynı hat (lar) remote
bölümünde. Bu durumda Git'iniz refs/heads/master
,refs/remotes/origin/master
örneğin . Git bunu karşılaşan her şube adıyla yapar.
Ayrıca özel dosyadaki orijinal adları da kaydeder FETCH_HEAD
(kendi .git
dizininize göz atarsanız bu dosyayı görebilirsiniz ). Bu dosya, getirilen adları ve kimlikleri kaydeder.
git pull
O çalıştırır: komutu bir kolaylık kestirme yol olarak kastedilmektedir git fetch
sonra uzaktan uygun üzerinde ve git merge
(böylece, talimat eğer ya git rebase
direktifleri doğrultusunda ne olursa olsun argümanlar birleştirme (veya rebase) ihtiyaç vardır) [branch ...]
bölümünde. Bu durumda, [branch "feature/Sprint4/ABC-123-Branch"]
bölümünüzden getirme origin
, ardından adın altında bulunan herhangi bir kimlikle birleştirmeyi söyler refs/heads/feature/Sprint4/ABC-123-Branch
.
Bu isim altında hiçbir şey bulunmadığından git pull
şikayet ve durur.
Bunu iki ayrı adım olarak git fetch
ve ardından git merge
(veya git rebase
) olarak çalıştırdıysanız Git'iniz, remotes/origin/
neyle birleştirileceğini veya yeniden birleştirileceğini görmek için önbelleğe alınmış uzaktan izleme dallarınıza bakar . Orada ise oldu böyle bir dal bir anda, yine uzaktan izleme dalı olabilir. Bu durumda hata mesajı almazsınız. Orada böyle bir dal değildi, ya da eğer yayınlanmadığını git fetch
ile --prune
(ölü uzaktan izleme dalları kaldırılır), hiçbir karşılık gelen uzaktan izleme şubesi var ki, bir şikayet alacağı, ancak bakın olur origin/feature/Sprint4/ABC-123-Branch
onun yerine.
Her iki durumda da , feature/Sprint4/ABC-123-Branch
şu anda adlandırılan uzaktan kumandada mevcut olmadığı sonucuna varabiliriz origin
.
Muhtemelen bir seferde vardı ve muhtemelen yerel şubenizi uzaktan izleme şubesinden oluşturdunuz. Öyleyse, muhtemelen uzaktan izleme şubesine sahipsiniz. Şubeyi kimin uzaktan kumandan çıkardığını ve nedenini araştırabilir veya yeniden oluşturmak için bir şeyleri itebilir veya uzaktan izleme dalınızı ve / veya yerel şubenizi silebilirsiniz.
1 En azından itiraf edeceği her şey . Ancak bazı referansları gizlemedikçe, liste her şeyi içerir.