Päävaraston onnistunut kloonaus ei testaa sen alimoduuleja. Alimoduuli on toinen Git-varasto, mahdollisesti toisessa isännässä ja eri siirtotavalla.

Aloita lukemalla ilmoitetut URL-osoitteet:

git -C project config --file .gitmodules --get-regexp '^submodule\..*\.url$'
git -C project submodule status --recursive

HTTPS:n kautta haettu päävarasto voi sisältää alimoduulin, joka käyttää muotoa git@host:. HTTP-välityspalvelinasetus ei määritä tuota SSH-yhteyttä. Suhteelliset alimoduulien URL-osoitteet on myös ratkaistava pääprojektin sopivaa etävarastoa vasten, ei projektin nimestä oletettua verkko-osoitetta vasten.

Varastokohtaisilla asetuksilla on rajattu vaikutusalue

Paikallinen http.proxy-määritys kuuluu varastolle, jonka asetustiedostossa se on. Älä oleta, että vain päävarastoa tutkimalla näet kaikki alustetussa alivarastossa vaikuttavat asetukset.

Voit antaa kyseiselle kutsulle Git-komentoriviasetuksen, jos haluat määrittää HTTPS-välityspalvelimen tilapäisesti rekursiivisen päivityksen ajaksi:

git -C project -c http.proxy=http://203.0.113.10:8080 \
  submodule update --init --recursive

Vaihda esimerkkipäätepiste. Julkisille HTTPS-alimoduuleille reitillä, joka sallii julkiset välityspalvelimet, HTTP-välityspalvelinluettelo tarjoaa osoitevaihtoehtoja. Tämä ei muuta SSH-alimoduulien URL-osoitteita HTTPS:ksi. Tarkista myös tarkempi URL-kohtainen määritys, jos valittu reitti yllättää.

Kun tallennettu URL on muuttunut

Git rekisteröi alimoduulin asetukset paikallisesti alustuksessa. Jos projektin alimoduuli-URL on muuttunut, vertaa nykyistä määritystä paikallisesti rekisteröityyn arvoon ennen kuin päättelet välityspalvelimen olevan rikki. Dokumentoitu sync-toiminto päivittää rekisteröidyt URL-osoitteet projektin määrityksestä; se ei itsessään ole verkkovälityspalvelimen asetus.

Sisäkkäisissä virheissä kirjaa tarkka alimoduulipolku ja virheen nimeämä etävarasto. Rekursiivinen toiminto voi ottaa yhteyden useaan isäntään; sisäinen isäntä saattaa tarvita suoran yhteyden poikkeuksen julkisen käyttäessä välityspalvelinta.

Erota siirtovirheet varaston virheistä. Puuttuva commit, varaston epäämä pääsy ja epäonnistunut yhteys välityspalvelimeen ovat eri syitä samalle yleiselle tulokselle ”submodule update failed”.

Aiheeseen liittyvät artikkelit