Mark Longair'in Git Submodules blog yazısında açıklandığı gibi ,
Git'in 1.7.0 ve sonraki sürümleri git alt modülünün davranışında can sıkıcı bir değişiklik içerir .
Alt modüller artık değiştirilmiş dosyaları veya izlenmemiş dosyaları varsa kirli olarak kabul edilirken, daha önce sadece alt modüldeki HEAD yanlış işleme işaret ediyorsa durum böyle olurdu.
+
Git alt modülünün çıktısındaki artı işaretinin ( ) anlamı değişti ve buna ilk kez rastladığınızda neyin yanlış gittiğini anlamak biraz zaman alıyor, örneğin changelog'lara bakarak veya git'te git bisect'i kullanarak Değişikliği bulmak için .git. “Belirtilen sürümde farklı, ancak kirli” için farklı bir sembol kullanmak kullanıcılara çok daha nazik olurdu.
Bunu şu şekilde düzeltebilirsiniz:
ana repoya geri dönmeden önce (farkın artık "kirli" dosyaları bildirmemesi gerekir) alt modüllerinizin her birindeki değişiklikleri / evrimleri yerine getirme veya geri alma. Alt modülünüzdeki tüm değişiklikleri sadece alt modülünüzün cd
kök dizinine geri almak vegit checkout .
dotnetCarpenter şunları yapabileceğinizi yorumlar :git submodule foreach --recursive git checkout .
veya ekleme --ignore-submodules
adresinden Müşteri git diff
geçici olanlar "kirli" alt modüllerini görmezden.
Git sürüm 1.7.2'deki yenilikler
As Noam aşağıda yorumlar , bu soruyu git sürümü 1.7.2 beri, pis submodules ile yoksayabileceğinizi bahseder:
git status --ignore-submodules=dirty
git commit -a
Bu değişiklikleri eklemeden endişe etmeden yine de uygulayabilirsiniz.M
Önde işaretlenmiş olmalarına rağmen , taahhütlerinize son vermezler.