Үндсэн санг амжилттай клондох нь дэд модулиудыг шалгахгүй. Дэд модуль нь өөр Git сан бөгөөд өөр хост дээр, өөр дамжуулалттай байж болно.

Зарласан URL-уудыг уншихаас эхэлнэ:

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

HTTPS-ээр татсан эцэг сан git@host: ашигладаг дэд модультай байж болно. HTTP прокси тохиргоо тэр SSH холболтыг тохируулахгүй. Харьцангуй URL-уудыг төслийн нэрээс таасан вэб хаягаар бус, дээд төслийн тохирох remote-д харьцуулан шийднэ.

Сангийн дотоод тохиргоо хамрах хүрээтэй

Дотоод 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-уудыг төслийн зарлалаас шинэчилдэг; өөрөө сүлжээний прокси тохиргоо биш.

Давхарласан алдаанд заасан дэд модулийн нарийн зам болон remote-ыг тэмдэглэнэ. Рекурсив үйлдэл олон хосттой харилцаж болно; нийтийн хост прокси ашиглахад дотоод хост шууд холболтын онцгой нөхцөл шаардаж болно.

Дамжуулалтын алдааг сангийн алдаанаас ялгана. Олдохгүй commit, сангийн хориглосон хандалт, прокси холболтын бүтэлгүйтэл нь ижил ‘submodule update failed’ үр дүнгийн өөр шалтгаанууд.

Холбоотой нийтлэлүүд