Как вытащить из Git-репозитория через HTTP-прокси? - PullRequest
466 голосов
/ 24 сентября 2008

Примечание: хотя описанный вариант использования касается использования подмодулей в проекте, то же самое относится и к обычному git clone хранилищу по HTTP.

У меня есть проект под контролем Git. Я хотел бы добавить подмодуль:

git submodule add http://github.com/jscruggs/metric_fu.git vendor/plugins/metric_fu

Но я получаю

...
got 1b0313f016d98e556396c91d08127c59722762d0
got 4c42d44a9221209293e5f3eb7e662a1571b09421
got b0d6414e3ca5c2fb4b95b7712c7edbf7d2becac7
error: Unable to find abc07fcf79aebed56497e3894c6c3c06046f913a under http://github.com/jscruggs/metri...
Cannot obtain needed commit abc07fcf79aebed56497e3894c6c3c06046f913a
while processing commit ee576543b3a0820cc966cc10cc41e6ffb3415658.
fatal: Fetch failed.
Clone of 'http://github.com/jscruggs/metric_fu.git' into submodule path 'vendor/plugins/metric_fu'

У меня настроен HTTP_PROXY:

c:\project> echo %HTTP_PROXY%
http://proxy.mycompany:80

У меня даже есть глобальная настройка Git для http-прокси:

c:\project> git config --get http.proxy
http://proxy.mycompany:80

Кто-нибудь получал HTTP-выборки для последовательной работы через прокси? Что действительно странно, так это то, что некоторые проекты на GitHub работают нормально (awesome_nested_set, например), но другие постоянно терпят неудачу ( rails , например).

Ответы [ 26 ]

10 голосов
/ 20 февраля 2014

В Windows, если вы не хотите вводить пароль в .gitconfig в виде обычного текста, вы можете использовать

Он аутентифицирует вас на обычном или даже Windows NTLM-прокси и запускает localhost-proxy без аутентификации.

Чтобы запустить его:

  • Установить Cntml
  • Настройка Cntml в соответствии с документацией для прохождения аутентификации через прокси
  • Укажите git на новый прокси-сервер localhost:

    [http]
        proxy = http://localhost:3128       # change port as necessary
    
6 голосов
/ 09 апреля 2015

Для меня это сработало:

sudo apt-get install socat

Создайте файл внутри вашего $ BIN_PATH / gitproxy с помощью:

#!/bin/sh 
_proxy=192.168.192.1 
_proxyport=3128 
exec socat STDIO PROXY:$_proxy:$1:$2,proxyport=$_proxyport

Не забудьте дать ему разрешение на выполнение

chmod a+x gitproxy

Выполните следующие команды для настройки среды:

export PATH=$BIN_PATH:$PATH
git config --global core.gitproxy gitproxy
5 голосов
/ 24 ноября 2016

Настройка прокси для git

Команда

git config --global http.proxy http://user:password@domain:port

Пример

git config --global http.proxy http://clairton:123456@proxy.clairtonluz.com.br:8080
5 голосов
/ 26 августа 2011

Просто чтобы опубликовать это, так как это первый результат в Google, это сообщение в блоге, которое я нашел, решает проблему для меня путем обновления сертификатов curl.

http://www.simplicidade.org/notes/archives/2011/06/github_ssl_ca_errors.html

4 голосов
/ 24 октября 2016

Это сработало для меня.

git config --global http.proxy proxy_user:proxy_passwd@proxy_ip:proxy_port
3 голосов
/ 16 августа 2018

Установите для Git credential.helper значение wincred.

git config --global credential.helper wincred

Убедитесь, что есть только 1 credential.helper

git config -l

Если их больше 1, а wincred не установлен, удалите их.

git config --system --unset credential.helper

Теперь установите прокси без пароля.

git config --global http.proxy http://<YOUR WIN LOGIN NAME>@proxy:80

Убедитесь, что все добавленные вами настройки выглядят хорошо ....

git config --global -l

Теперь тебе пора!

3 голосов
/ 26 февраля 2012

У меня была та же проблема, но с немного другим исправлением: ПЕРЕГОТОВКА GIT С ПОДДЕРЖКОЙ HTTP

Протокол git: не работал через мой корпоративный брандмауэр.

Например, этот тайм-аут:

git clone git://github.com/miksago/node-websocket-server.git

curl github.com работает просто отлично, поэтому я знаю, что моя переменная окружения http_proxy верна.

Я пытался использовать http, как показано ниже, но сразу получил ошибку.

git clone http://github.com/miksago/node-websocket-server.git

->>>  fatal: Unable to find remote helper for 'http' <<<-

Я попытался перекомпилировать git так:

./configure  --with-curl --with-expat

но все равно получил фатальную ошибку.

Наконец, после нескольких разочаровывающих часов, я прочитал файл конфигурации, и увидел это:

# Определить CURLDIR = / foo / bar, если ваш заголовок curl и файлы библиотеки находятся в

# / foo / bar / include и / foo / bar / lib.

Я вспомнил тогда, что я не выполнил curl из источника, и так пошел ищу файлы заголовков. Конечно же, они не были установлены. Это была проблема. Make не жаловался на отсутствующие заголовочные файлы. Так Я не понимал, что опция --with-curl ничего не сделала (это фактически значение по умолчанию в моей версии git).

Я сделал следующее, чтобы исправить это:

  1. Добавлены заголовки, необходимые для make:

    yum install curl-devel
    (expat-devel-1.95.8-8.3.el5_5.3.i386  was already installed).
    
  2. Удалено git из /usr/local (так как я хочу, чтобы новая установка существовала там).

    Я просто удалил git* из /usr/local/share и /usr/local/libexec

  3. Поиск включенных каталогов, содержащих заголовочные файлы curl и expat, а затем (поскольку я прочитал configure) добавил их в среду следующим образом:

    export CURLDIR=/usr/include 
    export EXPATDIR=/usr/include
    
  4. Ран configure со следующими параметрами, которые, опять же, были описаны в самом файле configure, и были также значениями по умолчанию, но какого черта:

    ./configure  --with-curl --with-expat
    
  5. А теперь http работает с git через мой корпоративный брандмауэр:

    git clone http://github.com/miksago/node-websocket-server.git
    Cloning into 'node-websocket-server'...
    * Couldn't find host github.com in the .netrc file, using defaults
    * About to connect() to proxy proxy.entp.attws.com port 8080
    *   Trying 135.214.40.30... * connected
    ...
    
2 голосов
/ 21 февраля 2017

вы можете использовать:

git config --add http.proxy http://user:password@proxy_host:proxy_port
1 голос
/ 22 марта 2017

Использование прокси-цепей

proxychains git pull ...

обновление: proxychains прекращено, используйте proxychains-ng .

1 голос
/ 02 февраля 2016

для Windows

Перейти -> C: / Users / имя_пользователя / gitconfig

Обновить файл gitconfig, указав ниже детали

[HTTP]

[HTTPS]

proxy = https://your_proxy:your_port

[HTTP]

proxy = http://your_proxy:your_port

Как проверить прокси и номер порта?

Internet Explorer -> Настройки -> Свойства обозревателя -> Подключения -> Параметры локальной сети

...