Гит через прокси.Что вызывает ошибку 407 при клонировании? - PullRequest
14 голосов
/ 19 декабря 2011

Я пытаюсь использовать Git через прокси.Я пытался установить параметры 'git config --global' многими способами, но всегда безуспешно при клонировании репозиториев.

Я сделал:

git config --global http.proxy http://DOMAIN\\\username:password@10.0.2.42:8080
git config --global http.sslverify false
git clone http://github.com/project/project.git

И получил:

$ git clone http://github.com/project/project.git folder
Cloning into 'folder'...
error: The requested URL returned error: 407 while accessing http://github.com/project/project.git/info/refs
fatal: HTTP request failed

Итак, как мне отладить это или включить вход в Git, чтобы узнать, почему я все еще получаю ошибку 407?Есть ли какой-то параметр в Git, чтобы подробно показать, что происходит, чтобы поймать правильную точку, где происходит ошибка?

Ответы [ 11 ]

9 голосов
/ 04 декабря 2015

У меня была похожая проблема при попытке git push из клиента Git Bash в Windows.

Я исправил это, просто просмотрев сайт с помощью Chrome.
Затем явернулся к Git Bash, и он сразу заработал

Для ясности, мой URL GIT-репозитория выглядит как http://me@me.git.cloudforge.com/myproject.git
И я просмотрел http://www.cloudforge.com

Насколько я понимаю, это заставляетпрокси для разрешения этого домена.

7 голосов
/ 19 декабря 2011

Вы можете включить трассировку, чтобы получить больше информации о том, что делает Git.Ниже приведен пример:

GIT_TRACE=$HOME/trace.log git co master

Вы должны использовать абсолютные пути, если хотите отправить вывод в файл.В противном случае используйте true или 1 для отправки вывода на стандартную ошибку;например, GIT_TRACE=1.

3 голосов
/ 19 декабря 2011

Я думаю, что вы должны начать с ошибки HTTP: объяснена ошибка HTTP 407 .И из этого вы можете получить ответ: ошибка прокси-сервера .Надеюсь, это поможет.

2 голосов
/ 15 марта 2019

Если вы уже находитесь за прокси-сервером и получаете эту ошибку, вам придется очистить http.proxy и https.proxy: git config --global --unset http.proxy git config --global --unset https.proxy

2 голосов
/ 27 марта 2014

Следующее решило проблему для меня

  1. Щелкните правой кнопкой мыши на папке git-> TortoiseGit-> Настройки-> Сеть
  2. Включить прокси-сервер и ввести прокси, порт, пользователя, пароль
1 голос
/ 22 марта 2017

Это работает для пользователей в домене и за прокси-сервером с проверкой подлинности и проверкой HTTPS. Используйте следующее, где используется% 5c вместо "\". то есть. DOMAIN% 5cusername @ прокси: порт

Откройте конфигурацию GIT в редакторе, введя следующую команду:

git config --global -e     

Добавить / обновить следующие разделы и сохранить:

[http]
    proxy = http://domain%5cusername:password@proxy:port
    sslVerify = false
[https]
    proxy = http://domain%5cusername:password@proxy:port
    sslVerify = false
1 голос
/ 01 октября 2015

Ваш прокси также может быть установлен как переменная окружения.Проверьте, настроены ли в вашей среде какие-либо переменные env http_proxy или https_proxy, и удалите их.

Использование командной строки

# Linux
export http://user:pass@ip_or_host:port
export http://user:pass@ip_or_host:port

# Windows
set HTTP_PROXY = http://user:pass@ip_or_host:port 
set HTTPS_PROXY = http://user:pass@ip_or_host:port

change Вручную

  • Щелкните правой кнопкой мышина моем компьютере
  • выберите свойства
  • дополнительные параметры системы, дополнительные-> системные переменные -> добавить
1 голос
/ 10 апреля 2015

Я скопировал раздел http прокси моего .gitconfig в https:

[http]
        proxy = http://user:pass@ip_or_host:port
[https]
        proxy = http://user:pass@ip_or_host:port

Я ввел неверный пароль в http-прокси, чтобы проверить, и он был проигнорирован, поэтому мне не хватало раздела https.

Странно, но в другой день это не сработало. Я не знаю, схожу ли я с ума или есть еще один шаг, который я забыл. В современном случае этот способ настройки прокси работал (с очищенным .gitconfig) из командной строки:

HTTPS_PROXY="http://user:pass@ip_or_host:port/" git clone --progress -v "https://github.com/repo" local_folder

Примечания:

  1. Если вы находитесь в домене, вам может понадобиться использовать синтаксис DOMAIN\user.
  2. Это не сработало для TortoiseGit, но работало в gitbash на Windows.
1 голос
/ 03 сентября 2014

Эта ошибка может возникать, если указаны учетные данные прокси, но они недействительны.В моем случае это был старый пароль.

0 голосов
/ 25 апреля 2017

Обратите внимание, что для любого Git между 2.8 (февраль 2016 года, через пять лет после вопроса ОП) и Git 2.13 (второй квартал 2017 года) недопустимая конфигурация прокси будет молча игнорироваться (даже не 407)

См. коммит ae51d91 , коммит 5741508 (11 апреля 2017 г.) от Сергей Рязанов (acteek) .
Помощник: Джефф Кинг (peff) .
(Объединено с Junio ​​C Hamano - gitster - in commit 6b51cb6 , 24 апреля 2017 г.)

http: исправить молчаливое игнорирование неверной конфигурации прокси

Ранее вся строка опции http.proxy была передана в curl без любая предварительная обработка, чтобы curl мог пожаловаться на недопустимый прокси конфигурации.

После коммита 372370f ("http: используйте API учетных данных для обработки прокси Аутентификация ", 2016-01-26), если пользователь указал неверный HTTP опция прокси в конфигурации, затем опция разбора молча терпит неудачу, и NULL будет передан в curl как прокси.
Это заставляет curl отступить к определению конфигурации прокси-сервера из среды, в результате чего опция http.proxy игнорируется.

Исправьте эту проблему, проверив результат анализа опции прокси. Если разбор не удалось распечатать сообщение об ошибке и умереть.
Такое поведение позволяет Пользователь может быстро определить неправильную конфигурацию прокси и исправить ее.

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