Если у вас есть один основной репо, который зависит от нескольких других репо, я бы добавил их как подмодули. Это облегчает работу в GitLab, и ваши коллеги могут легко найти правильные версии, которые им необходимо клонировать для этих репозиториев. Если у вас есть какие-то специфические c, которые не нужны в качестве подмодулей, тогда я понимаю!
В GitLab есть несколько различных способов справиться с этим. Самый простой - использовать переменную GIT_STRATEGY
:
https://docs.gitlab.com/ee/ci/yaml/#git -strategy
Вы можете установить fetch
следующим образом:
my_job:
variables:
GIT_STRATEGY: fetch
script:
- echo test
Затем GitLab попытается повторно использовать существующий рабочий каталог вместо того, чтобы всегда клонировать новый.
У меня был случай, когда я использовал флаг для клона git, называемый --reference
:
https://git-scm.com/docs/git-clone#Documentation / git -clone.txt --- reference-if-ableltrepositorygt
Есть некоторые очень странные особые случаи, о которых вам нужно подумать , Этот флаг делает то, что git использует локальную копию хранилища и копирует объекты из этого, вместо того, чтобы всегда копировать из сети. В некоторых случаях это может значительно ускорить операции клонирования.
В дополнение к этим предложениям у GitLab есть страница с предложениями по работе с большими репозиториями:
https://docs.gitlab.com/ee/ci/large_repositories/