'n Geslaagde kloning van die hoofbewaarplek toets nie sy submodules nie. 'n Submodule is nog 'n Git-bewaarplek, moontlik op 'n ander gasheer en moontlik met 'n ander vervoer.

Begin deur die verklaarde URL’s te lees:

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

'n Ouer wat oor HTTPS gehaal word, kan 'n submodule met git@host: bevat. 'n HTTP-proxy-instelling stel nie daardie SSH-verbinding op nie. Relatiewe submodule-URL’s moet ook teen die superprojek se toepaslike remote opgelos word, nie teen 'n webadres wat jy uit die projeknaam afgelei het nie.

Bewaarplekplaaslike instellings het 'n omvang

'n Plaaslike http.proxy-inskrywing behoort aan die bewaarplek waarvan die konfigurasielêer dit bevat. Moenie aanvaar dat net die ouer se instellings al die effektiewe instellings binne 'n geïnitialiseerde kinderbewaarplek wys nie.

Om tydelik 'n HTTPS-proxy vir 'n rekursiewe opdatering af te dwing, kan jy Git se opdraglynkonfigurasie aan daardie aanroep verskaf:

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

Vervang die voorbeeldadres. Vir openbare HTTPS-submodules op 'n roete wat openbare proxy’s toelaat, bied die HTTP-proxylys kandidaatadresse. Dit verander nie SSH-submodule-URL’s na HTTPS nie, en 'n meer spesifieke URL-gebaseerde konfigurasie moet steeds nagegaan word wanneer die gekose roete onverwags is.

Wanneer die aangetekende URL verander het

Git registreer submodulekonfigurasie plaaslik tydens inisialisering. As die projek se submodule-URL verander het, vergelyk die huidige verklaring met die plaaslik geregistreerde waarde voordat jy besluit dat 'n proxy dood is. Die gedokumenteerde sync-bewerking werk geregistreerde URL’s volgens die projekverklaring by; dit is nie self 'n netwerkproxy-instelling nie.

By geneste mislukkings, teken die presiese submodulepad en remote in die fout aan. 'n Rekursiewe bewerking kan verskeie gashere kontak, en 'n interne gasheer kan 'n direkte uitsondering nodig hê terwyl 'n openbare gasheer die proxy gebruik.

Hou vervoerfoute apart van bewaarplekfoute. 'n Onbeskikbare commit, toegang wat deur die bewaarplek geweier word en 'n mislukte proxyverbinding is verskillende redes vir dieselfde algemene uitkoms: ‘submodule update failed’.

Verwante artikels