Git, за прокси и продолжай получать HTTP код = 417 - PullRequest
2 голосов
/ 06 октября 2010

наша компания предоставляет нам доступ в Интернет через прокси-сервер, но после настройки http.proxy я продолжаю получать HTTP-код 417 После небольшого Google, я думаю, это потому, что libcurl, который использует git, отправил «Expect: 100-continue»заголовок, который прокси (я предполагаю, что Squid) не понимает и отвечает 417: Expection fail.

Я не могу изменить настройку прокси, поэтому ниже приведены мои вопросы:

  1. можно ли отключить заголовок Expect в libcurl?я знаю, что могу использовать опцию -H curl (бинарный файл), но, похоже, git / libcurl не поддерживает эту опцию.
  2. или как я могу обойти эту проблему, не делая ничего с прокси?

Заранее спасибо,

Ответы [ 3 ]

1 голос
/ 07 октября 2010

Похоже, вы пытаетесь использовать Git через прокси?Вы можете попробовать это:

git config --global http.proxy="http://<user>:<password>@<proxy address>:<proxy port>"

Например,

git config --global http.proxy="http://jonathan:Password1@webproxy:8090"

Затем при выполнении git clone или настройке git remote используйте http:// вместо git:// как протокол.

0 голосов
/ 05 августа 2013

У меня была похожая проблема, кажется, что я мог протолкнуть небольшие изменения (до 1 кб), но при попытке большего толчка включился наш прокси-сервер (который использует Squid, вероятно), и в результате я получил следующую трассировку:

Counting objects: 50, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (20/20), done.
Writing objects: 100% (29/29), 3.47 KiB, done.
Total 29 (delta 11), reused 0 (delta 0)
error: RPC failed; result=22, HTTP code = 417
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly

Проблема была решена путем сброса всех настроек прокси из git как:

git config --global --unset-all http.proxy # to remove it from the global config
git config --unset-all http.proxy  # to remove it from the local repo config file

И добавление нашего (stash git) LAN ip / domain в / etc / hosts как:

sudo /etc/hosts

Внутри этого файла я добавил следующее:

192.168.xx.xxx  git.ourcompany.com

И бум, проблема решена! (Не забудьте запустить новый терминал, где вы попробуете этот толчок.)

0 голосов
/ 06 октября 2010

Я не знаю, как проксировать с помощью Squid, но если вам нужно только вытащить, не могли бы вы отразить репозиторий git с помощью curl или wget в локальной папке, а затем сказать git, чтобы использовать это вместо?

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