Submodule может быть любой репозиторий вам нравится, но если вы хотите добавьте его локально, для этого вам понадобится supported protocol.
Local Protocol
Самым основным является местный протокол, в котором удаленный репозиторий находится в другом каталоге на диске.
Это часто используется, если все члены вашей команды имеют доступ к общей файловой системе, такой как монтирование NFS, или в менее вероятном случае, когда все подключаются к одному компьютеру.
Последнее не было бы идеальным, потому что все ваши экземпляры хранилища кода были бы расположены на одном компьютере, что сделало бы катастрофическую потерю гораздо более вероятной.
Если у вас есть общий файсистему, то вы можете clone
, push
к и pull
из local file-based repository
.
Чтобы clone
хранилище, как это или добавить один в качестве пульта дистанционного управления для существующего проекта, используйте path
в хранилище как URL.
Например, чтобы клонировать локальный репозиторий, вы можете запустить что-то вроде этого:
git clone /opt/git/project.git
Или вы можете сделать это:
git clone file:///opt/git/project.git
Git работает немного по-другому, если явно указать file://
в начале URL-адреса.
Если вы просто указали путь, Git пытается использовать жесткие ссылки или напрямую копировать нужные ему файлы.
Если вы укажете file://
, Git запускает процессы, которые обычно используются для передачи данных по сети, что, как правило, намного менее эффективный способ передачи данных.
Основная причина указания префикса file://
- это если вы хотите, чтобы чистая копия репозитория с внешними ссылками или объектами не использовалась - как правило, после импорта из другой системы контроля версий или чего-то подобного (см. Внутренние разделы Git для задач обслуживания). Мы будем использовать обычный путь здесь, потому что это почти всегда быстрее.
To add a local repository to an existing Git project, you can run something like this:
git remote add local_proj /opt/git/project.git
Затем, вы можете нажать на и вытащить из этого пульта дистанционного управления, как если бы вы делали это по сети.