proxy push tag - Как я могу извлечь из репозитория Git через HTTP-прокси?





13 Answers

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

Так, например, если ваша конфигурация прокси-сервера выглядит следующим образом:

Server: myproxyserver
Port: 8080
Username: mydomain\myusername
Password: mypassword

Затем добавьте в свой файл .gitconfig следующую команду:

git config --global http.proxy http://mydomain\\myusername:mypassword@myproxyserver:8080

Не беспокойтесь о https . Пока указанный прокси-сервер поддерживает http и https, достаточно одной записи в файле конфигурации.

Затем вы можете проверить, что команда добавила запись в ваш файл .gitconfig успешно, выполнив cat .gitconfig :

В конце файла вы увидите следующую запись:

[http]
    proxy = http://mydomain\\myusername:mypassword@myproxyserver:8080

Это оно!

ssh remove socks

Примечание: в то время как описанный пример использования - это использование подмодулей внутри проекта, то же самое относится к нормальному 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 ).




Похоже, вы используете компиляцию Git для Windows (или, возможно, другую, о которой я не слышал). Есть способы отладить это: я считаю, что вся работа профайла http для git выполняется завитой. Установите эту переменную среды перед запуском git:

GIT_CURL_VERBOSE=1

Это должно по крайней мере дать вам представление о том, что происходит за кулисами.




Если вы просто хотите использовать прокси-сервер в указанном репозитории, вам не нужно использовать другие репозитории. Предпочтительным является опция -c, --config <key=value> когда вы git clone репозиторий. например

$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git --config "http.proxy=proxyHost:proxyPort"



Это старый вопрос, но если вы работаете в Windows, подумайте об установке HTTPS_PROXY, если вы извлекаете URL-адрес https. Работал для меня!




Я не http.proxy ни http.proxy ни GIT_PROXY_COMMAND для моего аутентифицированного http-прокси. Прокси-сервер не запускается в любом случае. Но я нашел способ обойти это.

  1. Установите corkscrew или другие альтернативы, которые вы хотите.
  2. Создайте файл authfile. Формат authfile : user_name:password и user_name , password - ваше имя пользователя и пароль для доступа к вашему прокси. Чтобы создать такой файл, просто выполните команду следующим образом: echo "username:password" > ~/.ssh/authfile .

  3. Измените ~/.ssh/config и убедитесь, что его разрешение равно 644 : chmod 644 ~/.ssh/config

Возьмите github.com в качестве примера, добавьте следующие строки в ~/.ssh/config :

Host    github.com
        HostName        github.com
        ProxyCommand    /usr/local/bin/corkscrew <your.proxy> <proxy port> %h %p <path/to/authfile>
        User            git

Теперь, когда вы делаете что-либо с git@github.com , он автоматически будет использовать прокси. Вы можете легко сделать то же самое и с Bitbucket .

Это не так элегантно, как другие подходы, но это работает как шарм.




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

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



Установить прокси для git

команда

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

пример

git config --global http.proxy http://clairton:123456@proxy.clairtonluz.com.br:8080



Это со мной работало.

git config --global http.proxy proxy_user:proxy_passwd@proxy_ip:proxy_port






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

git config --add http.proxy http://user:password@proxy_host:proxy_port



Установите 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

Теперь тебе хорошо!




Вышеупомянутые ответы работали для меня, когда мой прокси не нуждается в аутентификации. Если вы используете прокси-сервер, который требует аутентификации, вы можете попробовать CCProxy. У меня есть небольшой учебник о том, как настроить его здесь,

http://blog.praveenkumar.co.in/2012/09/proxy-free-windows-xp78-and-mobiles.html

Я смог нажать, потянуть, создать новые репозитории. Все работало отлично. Убедитесь, что вы делаете чистую деинсталляцию и переустанавливаете новую версию, если у вас проблемы с Git, как я.




как уже указывал @ user2188765, попробуйте заменить git:// протокол репозитория на http[s]:// . См. Также этот ответ




Related