Успешното клониране на основното хранилище не проверява подмодулите му. Подмодулът е друго Git хранилище, вероятно на друг хост и вероятно с друг транспорт.

Започнете с прочит на декларираните URL адреси:

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

Родител, изтеглен през HTTPS, може да съдържа подмодул с git@host:. Настройката за HTTP прокси не конфигурира тази SSH връзка. Относителните URL адреси на подмодулите също трябва да се разрешават спрямо подходящото отдалечено хранилище на основния проект, а не спрямо уеб адрес, предположен от името му.

Локалните настройки имат обхват

Локалният запис http.proxy принадлежи на хранилището, чийто конфигурационен файл го съдържа. Не приемайте, че проверката само на родителя разкрива всички действащи настройки в инициализирано дъщерно хранилище.

За временно задаване на HTTPS прокси при рекурсивна актуализация можете да подадете конфигурация от командния ред на Git за това извикване:

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

Заменете примерната крайна точка. За публични HTTPS подмодули по маршрут, който допуска публични проксита, списъкът с HTTP проксита предлага адреси кандидати. Това не превръща SSH URL адресите в HTTPS, а при неочакван маршрут си струва да проверите и по-конкретна конфигурация по URL.

Когато записаният URL е променен

Git регистрира конфигурацията на подмодула локално при инициализацията. Ако URL адресът му в проекта е променен, сравнете текущата декларация с локално регистрираната стойност, преди да решите, че проксито не работи. Документираната операция sync обновява регистрираните URL адреси от декларацията на проекта; тя сама по себе си не е мрежова прокси настройка.

При вложени грешки запишете точния път на подмодула и отдалеченото хранилище от съобщението. Рекурсивната операция може да се свърже с няколко хоста; вътрешен хост може да изисква изключение за директна връзка, докато публичен използва проксито.

Разграничавайте транспортните грешки от грешките на хранилището. Недостъпен commit, отказан от хранилището достъп и неуспешна връзка с проксито са различни причини за един и същ общ резултат „submodule update failed“.

Подобни статии