2014-11-05 17 views
9

Ana projemin bir parçası olmak istediğim bir git alt modülüm var (altmodüle gidecek çok sayıda projeye özel kodum var).git submodule'ı kaldırın, ancak dosyaları saklayın

Bu nedenle, alt dizine git başvurularını kaldırmak ve dosyaları ana git deposuna eklemek istiyorum.

Ama nasıl?

mv subfolder subfolder_tmp 
git submodule deinit subfolder 
git rm --cached subfolder 
mv subfolder_tmp subfolder 
git add subfolder 

sizin altmodülün için klasörün adıyla subfolder değiştirin ve herhangi eğik çizgi eklemeyin emin olun:

+0

Hemen yinelemeli kaldırmak '.svn' klasörleri – Raptor

+0

Bu, http://stackoverflow.com/questions/1759587/un-submodule-a-git-submodule – Chad

cevap

12

Sen endeksinde gitlink entry kaldırması gerekir.

"Remove a Git submodule?" ve "un-submodule a git submodule" da ayrıntılı olarak açıklarım.

--cached seçeneği, alt klasör içeriğini diskinizde tutmanıza izin veriyor ... git submodule deinit zaten bu içeriği kaldırmıştı. Bu nedenle mv bölümü.

Daha sonra bu alt klasörü ekleyebilir ve işleyebilirsiniz.

+2

'un bir kopyası gibi görünüyor, ancak' '' git altmodule deinit alt klasörü '' alt klasör içeriğini kaldırır diskten. İçerik zaten bittiği için '' '--cached'' seçeneği yok. (git 1.9.2) –

+0

@ ve -dev --cached diskten değil, dizinden kaldırır. – VonC

+1

deinit komutunun alt klasörü boş bir dizin olarak geri koyduğunu buldum. Mv daha sonra temp alt klasörünü yeniden adlandırmak yerine yeni boş dizine koydu. Yani son mv yapmadan önce dizinleri kontrol edin. Aksi halde, iş yaptı. – Jason

0

ilk fiziksel klasörü yeniden adlandırmak sürece alt modül klasör içeriğini silecektir VonC cevap - soru kaydedildi Chad tarafından kopyası olduğunu bu cevabı gösterildiği gibi:

https://stackoverflow.com/a/16162228

+0

Kabul edilen yanıt, bu endişeleri yansıtacak şekilde güncellendi. – Louth

İlgili konular