Использование SSH против https с подмодулями Github

Я хотел бы настроить публичное GitHub-репо с субмодулями. GitHub предлагает два способа подключения: https:... & git@... протоколы. Для команды, работающей над проектом, git@... гораздо проще в использовании, потому что мы все используем надлежащие сертификаты SSH. Но для случайного пользователя, который не является членом команды, https:... это единственный вариант. Подмодулям git требуется полный URL.

Как мы можем настроить подмодули репозитория, чтобы как разработчики, так и сторонние участники могли одинаково хорошо использовать систему? Спасибо!

3 ответа

Решение

Опубликуйте свои подмодули с https:// протокол, но заставьте всех ваших разработчиков использовать ssh:// протокол. Git может заменить один протокол другим на лету:

git config url."ssh://git@".insteadOf https://

Основываясь на ответе доктора философии , я обнаружил, что мне нужно указать --globalчтобы убедиться, что конфигурация применима и к подмодулям. Это команда, которую я выполнил:

      git config --global 'url.ssh://git@example.com.insteadOf' 'https://example.com:PORT'

(Написано как ответ, так как у меня нет репутации комментировать)

Во-первых, это не "протокол git", а фактически протокол SSH с URL-адресом git@github.com:user:repo,
(на самом деле есть протокол git, больше не используемый в наши дни)

Во-вторых, сохраните URL-адреса как https для подмодулей: легко кэшировать учетные данные (имя пользователя / пароль) с помощью диспетчера учетных данных (например, GCM для Windows).
Но это означает, что эти пользователи должны быть добавлены в качестве участников (независимо от того, используете ли вы HTTPS или URL-адреса SSH)

Другие вопросы по тегам