Rutarea proxy pentru submodule Git
Verifică URL-urile submodulelor, tipurile de transport și configurația depozitului când checkout-ul Git principal funcționează prin proxy, dar copiii nu.
Un clone reușit al depozitului principal nu testează submodulele. Un submodul este un alt depozit Git, posibil pe alt host și posibil folosind alt transport.
Începe prin citirea URL-urilor declarate:
git -C project config --file .gitmodules --get-regexp '^submodule\..*\.url$'
git -C project submodule status --recursive
Un depozit părinte descărcat prin HTTPS poate conține un submodul care folosește git@host:. O setare de proxy HTTP nu configurează acea conexiune SSH. URL-urile relative trebuie rezolvate față de remote-ul potrivit al superproiectului, nu față de orice adresă web presupusă după numele proiectului.
Setările locale ale depozitului au un domeniu
O intrare locală http.proxy aparține depozitului al cărui fișier de configurare o conține. Nu presupune că inspectarea doar a părintelui arată fiecare setare folosită în depozitul copil inițializat.
Pentru o suprascriere temporară a proxy-ului HTTPS în timpul unei actualizări recursive, configurația Git din linia de comandă poate fi transmisă acelei invocări:
git -C project -c http.proxy=http://203.0.113.10:8080 \
submodule update --init --recursive
Înlocuiește endpointul exemplu. Pentru submodule HTTPS publice pe o rută care permite proxy-uri publice, lista de proxy-uri HTTP oferă adrese candidate. Aceasta nu transformă URL-urile SSH în HTTPS; verifică și configurația mai specifică bazată pe URL dacă ruta surprinde.
Când URL-ul înregistrat s-a schimbat
Git înregistrează local configurația submodulului în timpul inițializării. Dacă URL-ul submodulului s-a schimbat în proiect, compară declarația curentă cu valoarea înregistrată local înainte să decizi că proxy-ul nu funcționează. Sincronizarea documentată actualizează URL-urile din declarația proiectului; nu este o setare de proxy de rețea.
Pentru erori imbricate, notează calea exactă a submodulului și remote-ul menționat. O operație recursivă poate contacta mai multe gazde, iar una internă poate necesita excepție directă în timp ce gazda publică folosește proxy-ul.
Separă erorile de transport de erorile depozitului. Un commit indisponibil, accesul refuzat și conexiunea eșuată la proxy sunt motive diferite pentru același rezultat „actualizarea submodulului a eșuat”.