SORU
15 EKİM 2012, PAZARTESİ


Git submodule olarak ortak kod ekleme sorunu: "dizin" var;

Git yeniyim ve alt modüller ekleyerek yardım bekleriz. İki proje bazı ortak kod paylaşımı aldım. Paylaşılan kod sadece iki proje içine kopyalanmıştır. Ortak kod için ayrı bir git repo oluşturdum ve git submodule olarak eklemek için planı olan projelerden kaldırıldı.

Klasörü belirtmek için git submodule Ekle yolunu seçeneği kullandım

git submodule add url_to_repo projectfolder

ama o zaman hata:

'projectfolder' already exists in the index"

Bu benim depoyu istenen yapı

repo
|-- projectfolder
    |-- folder with common code

Olası git submodule doğrudan projectfolder yeni bir klasör içine değil, repo ya da ekleyin. Sorun gerçekten projectfolder..olması gereken bu Ben bu konuda ne yapabilirim ve git submodule yol seçeneği hakkında yanlış anlamışım ne var Ekle?

CEVAP
15 EKİM 2012, PAZARTESİ


Maalesef yeterli bilgi sorunuza kesin bir şey hakkında nasıl gidiyor beri yok cevap için benim takip soru, ama bu olabilir yardım herhangi bir durumda.

Hata projectfolder zaten düzmece olduğu anlamına gelmektedir ("dizin zaten var"). Burada neler olduğunu öğrenmek için, o klasörü altında dizin listesi her şey için deneyin:

git ls-files --stage projectfolder

Bu çıkış ilk sütun, dizin nedir projectfolder söyler. (Bu Unıx filemodes gibi görünüyor, ama özel anlamlar git.)

Bir şey gibi görürsünüz şüpheleniyoruz:

160000 d00cf29f23627fc54eb992dde6a79112677cd86c 0   projectfolder

(bir satır 160000 ile başlayan yani) projectfolder depo zaten eklenmiş olan, bir"". gitlink git submodule çıktıda görünmüyor ve yeniden eklemek isterseniz bunu bir submodule olarak, yapabilirsiniz:

git rm --cached projectfolder

... unstage için, ve sonra:

git submodule add url_to_repo projectfolder

... bir submodule olarak depoyu eklemek için.

Ancak, bunun da mümkün olduğunu göreceksiniz birçok lekeler listelenmiş (dosya modu 100644 100755), hangi akla bana yapmadığını düzgün unstage dosyaları projectfolder daha önce kopyalama yeni depo içine yerleştirin. Eğer durum buysa, aşağıdaki tüm dosyaları unstage yapabilirsiniz:

git rm -r --cached projectfolder

... ve sonra submodule ekleyin:

git submodule add url_to_repo projectfolder

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HTC

    HTC

    12 Ocak 2006
  • PlugResearch

    PlugResearch

    22 Mart 2006
  • The Pet Collective

    The Pet Coll

    5 Ocak 2012