При использовании git submodule update как вы можете сказать ему клонировать зависимости с HTTP вместо GIT? - PullRequest
9 голосов
/ 04 мая 2011

У нас заблокирован порт 9418, поэтому я не могу клонировать его с помощью git: //xyz.git

Есть ли способ заставить git использовать HTTP вместо этого? Если я делаю это вручную, это работает, но когда я запускаю git submodule update, он всегда хочет использовать git:

Ответы [ 2 ]

13 голосов
/ 04 мая 2011

Вам необходимо изменить переменную конфигурации submodule.<submodule-name>.url для каждого подмодуля, например:

git config submodule.whatever.url http://github.com/nvie/shFlags.git

Затем, когда вы выполните git submodule update, git fetch, который запускается в этом подмодуле, будет использовать URLиз этой переменной конфигурации.

Если вы хотите изменить origin в этом подмодуле, вам нужно будет выполнить несколько отдельных шагов:

cd whatever
git remote rm origin
git remote add origin http://github.com/nvie/shFlags.git

... но если выВы не работаете активно в этом подмодуле, вам не нужно об этом беспокоиться.

Файл .gitmodules используется только для установки переменной submodule.<submodule-name>.url при инициализации подмодуля.Изменять не стоит, если вы не хотите отправить новую версию файла .gitmodules, и это хорошая политика, чтобы убедиться, что URL-адреса в файле .gitmodules доступны для всех, кто может клонировать его (например, обычно вы не будете коммитить* .gitmodules файл с URL-адресами SSH.)

6 голосов
/ 04 мая 2011

Это зависит от того, как подмодули зарегистрированы.Вы должны отредактировать файл .gitmodules до git submodules init.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...