среда, 27 января 2016 г.

git через корпоративный прокси


Есть вы находитесь за корпоративным прокси, то, возможно, сталкивались с проблемой ограничения доступа во внешнюю сеть по некоторым протоколам. Да что некоторым — часто режут все, кроме HTTP(S). Это создает проблему при выкачивании исходников проектов с GitHub, Bitbucket и других площадок. Собственно, сам проект можно выкачать указывая в пути https:// адрес вместо git://. Но с внешними модулями проекта так не пройдет. Тут остается править все пути в .gitmodules, что плохо, так как будет постоянно возникать вопрос слияния при обновлении этого файла на сервере.

Но есть и другой способ. Можно сказать git, чтобы он автоматически подменял при чтении конфига все вхождения git:// на https://. Для этого достаточно ввести в консоли следующую команду:
$ git config --global url."https://github.com/".insteadOf git://github.com/

3 комментария:

  1. Интересная особенность.
    А чем https:// не подходит (это именно вопрос, вдруг он чего-то не умеет, чего умеет git://).

    ОтветитьУдалить
  2. Практически во всех проектах используют ссылки на подмодули в виде git://.

    Я вижу тут такое объяснение: в этом случае для аутентификации будет использоваться твой сертификат. Это важно, если ты заливаешь в эти же подмодули. Если только чтение из открытых репозитариев, то https вполне сойдет, т.к. ты заходишь под анонимным пользователем. Ну и понятно, что свой логин/пароль в файле .submodules никто не станет для https прописывать.

    ОтветитьУдалить
  3. Хотя я столкнулся с проблемой при клонировании mono и там как раз вариант без аутентификации. Не "[email protected]:", который использует сертификат, а именно "git://". Последний не использует аутентификацию ни сервера, ни клиента. Неизвестно мне нафик там так сделали.

    ОтветитьУдалить