2010-02-19 17 views
7

Çok sayıda alt modemin bulunduğu bir projede çalışıyorum. Dün, her şey şeftaliydi, uygulama çalışıyordu, vb. Bu sabah git submodules update'u çalıştırdıktan sonra, uygulamada bir hata alıyorum.Ödeme geçmiş git submodule commit

$ git submodule update 
Submodule path 'vendor/plugins/pluginA': checked out '49d5cba84dcffc061db69813162d103feef31ecb' 
Submodule path 'vendor/plugins/pluginB': checked out '4f442f0448c1826252933d5af8fb33cd64d76f6e' 

Peki nasıl alt modülün (ler) Bu durum için beklerken sabit almak için önceki sürümünü kontrol başlayacağım? Bu davaya özellikle değinen bir örnek görmeden, çözümlere pek çok referans gördüm.

Teşekkürler!

Düzenleme: Ayrıca (yine kafaları referans pluginA ve pluginB nasıl/Master) Bunu düzeltmek/anlamama yardımcı olabilir bonus:

$ git submodule status 
49d5cba84dcffc061db69813162d103feef31ecb vendor/plugins/pluginA (49d5cba) 
4f442f0448c1826252933d5af8fb33cd64d76f6e vendor/plugins/pluginB (4f442f0) 
558fd1a762d63562689e58cac50283192fde74d5 vendor/plugins/pluginC (heads/master) 
4feb2c51148ebc4d4f80f9a64b9eabbfde5b13a3 vendor/plugins/pluginD (heads/master) 
19dce61e256b0fc3f05342cdd3e4d21a434c0b87 vendor/plugins/pluginE (heads/master) 
+0

Submodule'un klasöründe master'ı el ile denetleyerek "bonus" sorununu çözdüm. altmodule klasöründe 'git checkout master' ve superproject dizinindeyken' git commit '. – Rob

+0

Ayrıca bkz. Http://stackoverflow.com/questions/1979167/git-submodule-update/1979194#1979194 – VonC

cevap

2
$ git submodule update 
Submodule path 'vendor/plugins/pluginA': checked out '49d5cba84dcffc061db69813162d103feef31ecb' 
Submodule path 'vendor/plugins/pluginB': checked out '4f442f0448c1826252933d5af8fb33cd64d76f6e' 

Eğer getiriliyor ve projenize dosya ve submodules birleştirme, bir git çekme yapmış demektir ile mi hiç hangi sürümünü çıkış için.
Akış yönündeki projedeki (alt alanı olan) alt modüllerdeki SHA1 değişti.

Siz bu alt modül İstersen akıntıya karşı geri ref (projectA içinde git checkout aref ardından cd .. ve git add -A; git commit -m "advance submodule to aref") ve push (ya da değil) bunları geri değiştirebilir.

Eğer tam SHA1 alt modül güncellemeden önce, sadece ana proje güncellemesi önce önceki SHA1 olmak git show previousProjectSHA1 (previousProjectSHA1 yapmak adresinden alt modülü ne olduğunu bilmek gerekiyorsa

göreceksiniz gibi bir şey:

(4c4c5a2) Eğer önceki durumlarına geri yüklemek için gereken alt modül SHA1 olduğunu Yani
new file mode 160000 
index 0000000..4c4c5a2 

.

Bkz Submodullerin doğası hakkında daha fazla bilgi edinmek içinSO soru.

0

Aynı İlk durumda içindir, sen git dir submodule ve git checkout <ref>

İlgili konular