Git alt modülü eklerken "Henüz doğacak bir şubedesiniz"


118

Dizinime birkaç alt modül eklemeye çalışıyorum .vim/bundlesve bu belirli depoyu eklemeye çalıştığımda Git bana daha önce hiç görmediğim garip bir hata veriyor:

$ git submodule add -f git://github.com/derekwyatt/vim-scala.git .vim/bundle/vim-scala
fatal: You are on a branch yet to be born
Unable to checkout submodule '.vim/bundle/vim-scala'

Buna neyin sebep olabileceği hakkında bir fikriniz var mı?

Aynı depoyu bir test dizinine klonlarsam (alt modül komutuyla değil), sorunsuz çalışır ve beklenen dosyaları oluşturur.

Yanıtlar:


212

Bu hatayı düzeltmek için, .git/modules/dizin içindeki alt modüle giden aynı yola sahip klasörü silmelisiniz . Bu hata, alt modül eklendiğinde url'nin alt modül için ilk kez hatalı olması durumunda ortaya çıkabilir.


2
Teşekkürler, hile yaptı. İlk başta, .vim/bundle/vim-scalasilmek için yol klonladığımdan beri.git/modules/.vim/bundle/vim-scala
matt

2
Windows'taysanız, .git / modüller altındaki dizinin sizdir /AH
paxos1977

13
Bu .git/modules/path/to/submoduledizini silip alt modülü yeniden eklemeyi denedikten sonra, şu hatayı alıyorum .gitignore dosyalarınızdan biri şu yolu yok sayıyor: yol / - / alt modül .
Drew Noakes

1
@Drew Noakes, git alt modülü eklemesinin ilk çalıştırılmasından sonra oluşturulan .vim / bundle / vim-scala'yı kaldır
Piotr Król

Windows'ta, GUI'deki gizli klasörleri görmek ve silmek için Windows Gezgini seçeneklerini de (dosya uzantılarını görmeyi seçeceğiniz aynı yerde) kullanabilirsiniz.
user83358

13

Bir alt modülü eklemeniz gerekir içeride o Repo eklemek ve alt modül bağlantısını işlemeye bir durumda olması gerekir, varolan repo ve kendisi repo alt modülü bir kontrol taahhüt olmalıdır.

Şimdi, başka bir yerde normal bir klon oluşturabiliyorsanız, alt modül deposunun kendisi tamam olmalıdır. Ancak, submodule addrepo boşken klon yoksa şikayetçi gibi görünüyor . Bu adam , sadece aynı submodule addkomutu tekrar çalıştırarak bunun düzeltilebileceğini söylüyor .

İç depo boş değilse , alt modülü içermesini istediğiniz depoyu kontrol edin . Aynı kaçtın dizine Değişim git submodule addve çalıştırma git statusve git branchsizin içeren repo oluşturulmuş en az bir dalı vardır ve garip bir durumda olmadığını doğrulamak için.


Tüm bunları doğruladım. İstediğim depoyu başka bir dizine aldığımda, birçok dosya ve bir masterdalı var. Bunu bir alt modül olarak eklemeye çalıştığım depo, masterdalda, belirgin bir sorunu yok (durum bazı değiştirilmiş dosyalar döndürüyor, ama hepsi bu) ve hepsinden tuhafı, bu depoya başka alt modüller ekleyebilmem. .
matt b

Ayrıca tuhaf: OP'mden gelen fataluyarıdan sonra git, adresinde boş bir dizin bırakıyor .vim/bundle/vim-scala. Ayrıca .gitmodules, dokunulmamış olmasına rağmen , bu github.com deposuna atıfta bulunan bazı satırlar eklediğini .git/config, ancak bunları kaldırdıktan sonra hala aynı fatalhata mesajını aldığımı fark ettim .
matt b

7
+1 Argh! This guy suggests this is fixable by just running the same submodule add command again.. Mantıklı bir cevap bulmaya çalışırken bu problemle mücadele ediyordum ve bu nihayet çözdü. Bu, BitBucket'ten bir alt modül oluştururken MSYS altında 1.8.0'a gitme içindi, bu nedenle aynı durumdaysanız önce bunu deneyin.
Aaron Newton

İki kez eklemek benim için de çalıştı. Ama nedenini anlamıyorum. Herhangi bir açıklama var mı?
Elise

Burada da iki kez ekleniyor. Nedenini anlamak isterdim
Vinicius Dantas

12

Bu hata, masterdalı olmayan bir alt modül ekliyorsanız meydana gelebilir . Alt modülü eklerken ( developörneğin) başka bir dal kullanmak istiyorsanız , aşağıdaki komutu kullanabilirsiniz:

git submodule add -b <branch> <repository>

1
Benim durumumda repo yeni oluşturuldu ve bu nedenle herhangi bir dosya ve şubeye sahip değildi (boştu), bu yüzden git submodule add -b master <repo.git> <folder>yardımcı oldu
vladkras

Bu benim sorunumdu benim alt modülümde sadece 2 dal vardı, hiçbiri masterbenim için çalışan bir çözümünüz değil.
Guerneen4

0

@ Drew-noakes tarafından belirtildiği gibi, bunun nedeni .gitignore dosyanızda listelenen bir dizin adını kullanarak bir alt modül eklemeye çalışmak olabilir .

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.