Получение git для работы с прокси-сервером

Как мне получить git для использования прокси-сервера?

Мне нужно проверить код с сервера git, он показывает "Время ожидания запроса" каждый раз. Как мне обойти это?

В качестве альтернативы, как я могу установить прокси-сервер?

Ответ 1

Команда для использования:

git config --global http.proxy http://proxyuser:[email protected]:8080
  • измените proxyuser на своего прокси-пользователя
  • измените proxypwd на свой прокси-пароль
  • измените proxy.server.com на URL вашего прокси-сервера
  • измените 8080 на порт прокси, настроенный на вашем прокси-сервере

Если вы решите в любое время reset этот прокси-сервер и работать без прокси-сервера:

Команда для использования:

git config --global --unset http.proxy

Наконец, чтобы проверить установленный в настоящий момент прокси-сервер:

git config --global --get http.proxy

Ответ 2

Это сработало для меня, в Windows XP за корпоративным брандмауэром.

Мне не нужно было устанавливать какой-либо локальный прокси-сервер или любое другое программное обеспечение, кроме git v1.771 из http://code.google.com/p/msysgit/downloads/list?can=3

$ git config --global http.proxy http://proxyuser:[email protected]:8080
$ git config --system http.sslcainfo /bin/curl-ca-bundle.crt
$ git remote add origin https://mygithubuser:[email protected]/repoUser/repoName.git
$ git push origin master

proxyuser= прокси-пользователь, которому я был назначен нашим ИТ-отделом, в моем случае это тот же пользователь Windows, который я использую для входа на мой компьютер, пользователя Active Directory

proxypwd= пароль моего пользователя-прокси.

proxy.server.com:8080= имя и порт прокси, я получил его из панели управления, параметров обозревателя, подключений, настроек Lan Settings, кнопки Advanced внутри раздела Proxy Server, используя имя сервера и порт в первой (http) строке.

mygithubuser= пользователь, которого я использую для входа в github.com

mygithubpwd= пароль для моего пользователя github.com

repoUser= пользователь-владелец репо

repoName= имя репо

Ответ 3

Задайте системную переменную с именем http_proxy со значением ProxyServer:Port. Это самое простое решение. Соответственно, используйте https_proxy, как указано в комментариях daefu.

Настройка gitproxy (как упоминается sleske) - это еще один вариант, но для этого требуется "команда", что не так прямолинейно, как вышеприведенное решение.

Литература: http://bardofschool.blogspot.com/2008/11/use-git-behind-proxy.html

Ответ 4

Если способ настройки прокси-сервера командной строки не работает, вы можете, возможно, просто отредактировать файл .gitconfig(в корне вашего профиля, который может скрываться как в C:\Documents and Settings, так и на каком-то сетевом диске) и добавить это:

[http]
    proxy = http://username:[email protected]:8080

YMMV, однако, это охватывает только первый шаг конфигурации командной строки. Возможно, вам придется отредактировать конфигурацию системы git, и я не знаю, где они спрятали это.

Ответ 5

В качестве альтернативы использованию git config --global http.proxy address:port вы можете установить прокси-сервер в командной строке:

git -c "http.proxy=address:port" clone https://...

Преимущество в том, что прокси-сервер не устанавливается постоянно. В разделе Bash вы можете установить псевдоним:

alias git-proxy='git -c "http.proxy=address:port"'

Ответ 6

Если вы используете ubuntu, выполните следующие действия...

Шаг 1: Установите штопор

$ sudo apt-get install corkscrew

Шаг 2: напишите script с именем git -proxy.sh и добавьте следующие

#!/bin/sh

exec corkscrew <name of proxy server> <port> $*

# <name_of_proxy_server> and <port> are the ip address and port of the server
# e.g. exec corkscrew 192.168.0.1 808 $*

Шаг 3. Сделайте исполняемый файл script

$ chmod +x git-proxy.sh

Шаг 4. Настройте прокси-команду для GIT, установив переменную окружения

$ export GIT_PROXY_COMMAND="/<path>/git-proxy.sh"

Теперь используйте команды GIT, например

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

Ответ 7

Столкнувшись с той же проблемой из-за нескольких файлов .gitconfig в Windows, выполните следующие шаги, чтобы исправить одно и то же:

Шаг 1: Открыть Git BASH

Шаг 2: Найдите .gitconfig, выполнив следующую команду:

git config --list --global --show-origin

Шаг 3: Скопируйте содержимое ниже .gitconfig:

[http]
    proxy = http://YOUR_PROXY_USERNAME:[email protected]:YOUR.PROXY.SERVER.PORT
    sslverify = false
[https]
    proxy = http://YOUR_PROXY_USERNAME:[email protected]R:YOUR.PROXY.SERVER.PORT
    sslverify = false
[url "http://github.com/"]
    insteadOf = git://github.com/

[user]
    name = Arpit Aggarwal
    email = [email protected]

Ответ 8

Попробуйте поместить следующее в файл ~/.gitconfig:

[http]
    proxy = http://proxy:8080
[https]
    proxy = http://proxy:8080
[url "https://"]
    insteadOf = git://

Ответ 9

Для протокола git (git://...) установите socat и напишите script, например:

#!/bin/sh

exec socat - socks4:your.company.com:$1:$2

сделайте его выполнимым, поместите его в свой путь и в ~/.gitconfig установите core.gitproxy на имя этого script.

Ответ 10

В дополнение к этим ответам я нашел полезным рассмотреть эти 2 пункта:

Возможно, потребуется ввести схему аутентификации:

[http]
    # https://github.com/git/git/blob/master/Documentation/config.txt
    proxyAuthMethod = anyauth|basic|digest|negotiate|ntlm

Кроме того, как правило, с помощью схемы проверки подлинности NTLM может потребоваться явно указать домен AD.

В git bash:

echo %userdomain%

И обновите http.proxy соответственно:

git config --global http.proxy http://DOMAIN\\proxyuser:[email protected]:8080

В любом случае, исследование может помочь, добавив журналы CURL:

export GIT_CURL_VERBOSE=1

Ответ 11

Там кое-что я заметил и хочу поделиться здесь:

git config --global http.proxy http://<proxy address>:<port number>

Приведенный выше метод не будет работать для URL-адресов ssh (т.е. [email protected]:<user name>/<project name>.git):

git clone [email protected]:<user name>/<project name>.git // will not use the http proxy

И ничего не изменится, если мы установим SSH через порт HTTPS (https://help.github.com/en/articles/using-ssh-over-the-https-port), потому что он меняет только порт (по умолчанию 22), к которому подключается ssh-соединение.

(Не носитель английского языка, пожалуйста, уточните мои слова, если это необходимо)

Ответ 12

Я работаю на Windows XP на работе (штат/правительство), поэтому я провел исследование и обнаружил, что это здесь, и это сработало для меня. Надеюсь, это поможет :)

Переменная среды http_proxy

Если вы используете прокси-сервер или брандмауэр, вам может потребоваться установить переменную среды http_proxy, чтобы получить доступ к некоторым URL-адресам из командной строки. Пример: установка ppm для perl или применение rpm в linux, обновление ubuntu

Задайте для переменной http_proxy имя хоста или IP-адрес прокси-сервера: http_proxy = http://[proxy.example.org]

Если прокси-серверу требуются имя пользователя и пароль, включите их в следующую форму: http_proxy = http://[имя пользователя: пароль@proxy.example.org]

Если прокси-сервер использует порт, отличный от 80, укажите номер порта: http_proxy = http://[имя пользователя: пароль@proxy.example.org: 8080]

Windows XP

  1. Откройте панель управления и щелкните значок "Система".
  2. На вкладке "Дополнительно" нажмите "Переменные среды".
  3. Нажмите "Создать" на панели "Системные переменные".
  4. Добавьте http_proxy с соответствующей информацией о прокси (см. примеры выше).

Linux, Solaris или HP-UX

Установите переменную среды http_proxy с помощью команды, специфичной для вашей оболочки (например, set или export). Чтобы сделать это изменение постоянным, добавьте команду в соответствующий файл профиля для оболочки. Например, в bash добавьте следующую строку в ваш файл .bash_profile или .bashrc:

  1. http_proxy = http://[имя пользователя: пароль @имя хоста: порт];
  2. экспорт $ http_proxy

Ответ 13

Если у вас установлены и настроены tsocks или proxychain, вы можете

$ tsocks git clone <you_repository>

или же

$ proxychains git clone <you_repository>

чтобы сделать его короче, я создал символьную ссылку /usr/bin/p для proxychains, поэтому я могу использовать ее следующим образом

p git clone <you_repository>

и я могу использовать его для прокси любой команды,

p <cmd-need-be-proxied>

кстати, proxychains давно не обновляется, вы можете попробовать proxychians-ng

Ответ 14

Настройка git прокси-сервера на терминале

если

  • вы не хотите устанавливать прокси-сервер для каждого из ваших проектов git вручную, один за другим
  • всегда хотят использовать один и тот же прокси для всех ваших проектов.

Установить глобально один раз

git config --global http.proxy username:[email protected]_url:proxy_port
git config --global https.proxy username:[email protected]_url:proxy_port

если вы хотите установить прокси-сервер только для одного проекта git (могут возникнуть ситуации, когда вы можете не использовать какой-либо прокси-сервер или какой-либо прокси-сервер вообще для некоторых git -соединений)

//go to project root
cd /bla_bla/project_root
//set proxy for both http and https
git config http.proxy username:[email protected]_url:proxy_port
git config https.proxy username:[email protected]_url:proxy_port

если вы хотите отображать текущие настройки прокси-сервера

git config --list 

если вы хотите удалить прокси глобально

git config --global --unset http.proxy
git config --global --unset https.proxy

если вы хотите удалить прокси только для одного git root

//go to project root
cd /bla-bla/project_root
git config --unset http.proxy
git config --unset https.proxy

Ответ 15

Я следовал большинству ответов, которые были рекомендованы здесь. Сначала я получил следующую ошибку:

неустранимый: невозможно получить доступ к https://github.com/folder/sample.git/: schannel: next InitializeSecurityContext не удалось: неизвестная ошибка (0x80092012) - функция отзыва не смогла проверить отзыв сертификата.

Затем я попробовал следующую команду @Salim Hamidi

git config --global http.proxy http://proxyuser:[email protected]:8080

Но я получил следующую ошибку:

Неустранимый: невозможно получить доступ к https://github.com/folder/sample.git/: Получен HTTP-код 407 от прокси-сервера после CONNECT

Это может произойти, если прокси-сервер не может проверить сертификат SSL. Поэтому мы хотим убедиться, что проверка ssl отключена (не рекомендуется для ненадежных сайтов), поэтому я сделал следующие шаги, которые были рекомендованы @Arpit, но с небольшими изменениями:

1. Сначала убедитесь, что удалили все предыдущие настройки прокси:

git config --global --unset http.proxy

2. Затем перечислите и получите содержимое gitconfig.

git config --list --show-origin

3.Последнее обновление содержимого файла gitconfig, как показано ниже:

[http]
sslCAInfo = C:/yourfolder/AppData/Local/Programs/Git/mingw64/ssl/certs/ca-bundle.crt
sslBackend = schannel
proxy = http://proxyuser:[email protected]:8080
sslverify = false
[https]
proxy = http://proxyuser:[email protected]:8080
sslverify = false

Ответ 16

Для пользователей Windows: если git config или set http_proxy= не работает, этот ответ может помочь:

замените протокол git:// репозитория git на http://. Обратите внимание: сначала вам нужно установить http_proxy.

Ответ 17

вот настройка прокси

git config --global http.proxy http://<username>:<pass>@<ip>:<port>
git config --global https.proxy http://<username>:<pass>@<ip>:<port>

Ответ 18

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

Эта команда сработала:

git config --global http.proxy http://[email protected]:PortNumber 

Не вводите пароль в вашей команде. Он будет динамически запрашивать при попытке подключиться к любому git-репо.

Ответ 19

После того, как я без устали попробовал каждое решение на этой странице, я решил использовать вместо него ключ SSH!

  1. Open Git Bash
  2. $ ssh-keygen.exe -t rsa -C
  3. Откройте своего провайдера Git (Github, Bitbucket и т.д.)
  4. Добавьте копию содержимого файла id_rsa.pub на страницу ввода провайдера Git (проверьте ваш профиль)