Bunun anlamı
Yukarı originakışı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 mergefarklı bir hata mesajı alırsınız veya hiç hata mesajı almazsınız).
Çalıştırdığınızda git fetchGit, yapılandırmanızın bölümünün urlaltı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-remotenasıl çalıştığını görmek için kullanabilirsiniz (deneyin, eğiticidir). İşte bu bir Git deposunda gitkendisi 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 fetchaynı hat (lar) remotebö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 .gitdizininize göz atarsanız bu dosyayı görebilirsiniz ). Bu dosya, getirilen adları ve kimlikleri kaydeder.
git pullO çalıştırır: komutu bir kolaylık kestirme yol olarak kastedilmektedir git fetchsonra uzaktan uygun üzerinde ve git merge(böylece, talimat eğer ya git rebasedirektifleri 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 fetchve 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 fetchile --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-Branchonun 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.