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”.

Articole similare