BenGit: yinelemeli (yuvalanmış submodules) submodules hareketli
- git-repo a
-- subdirectory 2015
--- git-submodule b
-- git-submodule c
--- git-submodule d
Ben 2015 bunu yapmak "kirli yollarla" biliyor klasöre c git alt modülünü taşımak istiyoruz aşağıdaki git yapıya sahip
Geçenlerde git mv yani çalışan, bunu yapmak mümkün olmalıdır okumak (yani/modüller dosyaları .git/yapılandırma değiştirerek ve .git dosyaların birkaç içinde gitdir değişen dahil)
git mv c 2015/
Bu, yuvalanmış alt modemin bulunmadığı depolar için iyi çalışır (benim durumumda d). Benim dizinde bu komutu çalıştırdığınızda, ancak ben
fatal: Not a git repository: d/../../.git/modules/c/modules/d
fatal: 'git status --porcelain' failed in submodule 2015/c
gibi hataları alıyorum (not bu hata yukarıda belirtilen hareket yürüttükten sonra bir git statüsüne ortaya çıkar)
bir farkında mı Bu hareketi yapmak için temiz yöntem (örneğin, .git/modules dosyalarındaki yolları manuel olarak değiştirmeyen bir yöntem)?
Düzenleme: (6/10/2015)
(ilk d tüm değişiklikler taahhüt ve itilmiş emin olun edilir git config dosyalarının herhangi değişiklikler içermeyen Bulunduğum iyi çözüm yere)
rm c/d -rf
git mv c 2015
cd 2015/c
git submodule update
Düzenleme: (8/10/2015)
daha da az müdahaleci geçici çözüm
git mv c 2015
rm 2015/c/d/.git
cd 2015/c
git submodule update
: gitdir geçici kaldırmayı önlemek diğer çözümler için
, bu cevaba bakınız. Yine de teşekkürler. – BartBog
@BartBog, optimize edilmiş ve daha kesin bir çözüm olarak ses çıkarır. Bu bir git hatasıysa, daha iyi bir yanıt alacağınızı düşünmüyorum. – VonC
Yapılandırma dosyalarının manuel olarak düzenlenmesini gerektirmediğinden, bunun yerine git komutları ile çalışma notlarını düzenlediği için aslında biraz daha az kirli. Yine de kullanımı oldukça zor. Şimdi benim sorumu güncelleştirmek için yeni alt akışımı da içerecek şekilde güncelledim. Bu işlem, harekete geçmeden önce alt modülden (d) çok iyi çalışıyor ve karmaşık modifikasyonlar içermiyor) – BartBog