2010-01-06 8 views

cevap

4

olarak bildiğim kadarıyla, bir alt modülü başvurulan tek link vardır:

  • .gitmodules
 
    $ cat .gitmodules 
    [submodule "a"] 
      path = a 
      url = /home/moses/subtut/public/a/.git 
    [submodule "b"] 
      path = b 
      url = /home/moses/subtut/public/b/.git 
  • ve .git dizinin config alt modül

Anlamı Bu url azalmışsa, bu iki konumda değişmiş olabilir, ancak bu işlemi test etmedim. docs göre Gattster

git submodule sync. 

den


İyi yorumlar:

.gitmodules belirtilen değere ayarlanması submodules' uzaktan URL yapılandırmayı eşitler.
Alt modül URL'leri akış yukarı yönde değiştiğinde ve yerel depolarınızı buna göre güncellemeniz gerektiğinde bu özellik yararlıdır. "git submodule sync -- A" sadece alt modülü "A" eşitler ise

  • "git submodule sync" Tüm submodules
  • eşitler.

O.gitmodule daha iyi (yani, bir dal) izolasyon yapılan bu yeni URL/onaylanmış yayınlanabilir kadar olabilir modifiye bahsedilen edilir.

+0

URL'nin değiştirilmesiyle ilgili sorun, ana depoda, .gitmodules'un da aynı zamanda tahakkuk ettirileceğidir ve bu URL'ler ana depoyu klonlayan herkes için çalışmayabilir. Yerel bir şube üzerinde çalışmayı düşündüğümde, master'dan tek farkın .gitmodules farklı URL'leri olmasıdır. Çirkin, ama işe yarayacak: -/ – Silas

+1

Sanırım 'git submodule sync 'komutunu çalıştırabilirsiniz. Dokümanlara göre, bu "altmodüllerin uzak URL yapılandırma ayarını .gitmodules'de belirtilen değere eşitler. Bu, alt modül URL'leri akış yukarı yönde değiştiğinde ve yerel depolarınızı buna göre güncellemeniz gerektiğinde kullanışlıdır." – Gattster

+0

@qris, bana http://stackoverflow.com/questions/12078365/how-exactly-does-git-submodule-work/12078816#12078816 adresini hatırlatır: 'git altmodule güncellemesi 'de tehlikelidir. – VonC

1

Bunun mümkün olduğuna inanmıyorum. Bunu, projenize göz atarak, alt modüllerinizi başlatarak ve sonra bir alt modül dizinine cd yaparak ve git uzak kökeni yeni depo URL'sine güncelleyerek bunu elle yapmanız mümkün olmalıdır.