Я бы использовал сокеты; локальная связь была сильно оптимизирована, поэтому у вас не должно быть проблем с производительностью, и это дает вам возможность распространять ваше приложение на разные физические узлы, если это необходимо.
Что касается «низкого уровня», подход, ты прав. Но вы всегда можете использовать обертку более высокого уровня в зависимости от ваших потребностей. XMLRPC может быть хорошим кандидатом, но это может быть чрезмерным для задачи, которую вы пытаетесь выполнить.
Twisted предлагает несколько хороших простых простейших протоколов , например LineReceiver (для простых сообщений на основе строки) или более элегантный AMP (который, кстати, стандартизирован и реализован на разных языках ).
Я следовал большинству ответов, которые были рекомендованы здесь. Сначала я получил следующую ошибку:
неустранимый: невозможно получить доступ к ' https://github.com/folder/sample.git/ ': schannel: next Ошибка InitializeSecurityContext: Неизвестная ошибка (0x80092012) - Функция отзыва не смогла проверить отзыв для сертификата.
Затем я попробовал следующую команду @Salim Hamidi
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
Но я получил следующую ошибку:
fatal: неспособен получить доступ ' 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:proxypwd@proxy.server.com:8080
sslverify = false
[https]
proxy = http://proxyuser:proxypwd@proxy.server.com:8080
sslverify = false
Есть кое-что, что я заметил и хочу поделиться здесь:
git config --global http.proxy http://<proxy address>:<port number>
Приведенный выше метод не будет работать для URL-адресов ssh: (т. Е. git@github.com:<user name>/<project name>.git
)
git clone git@github.com:<user name>/<project name>.git // this will not use the above proxy!
И прочего не изменится, если мы установим SSH через порт HTTPS ( https://help.github.com/en/articles/using-ssh-over-the-https-port ), потому что он меняет только порт (По умолчанию 22) ssh-соединение подключается к.
(не носитель языка, пожалуйста, уточните мои слова, если необходимо)
Столкнулся с той же проблемой из-за нескольких файлов .gitconfig
в окнах, следуя приведенным ниже инструкциям, чтобы исправить это:
Шаг 1: Открыть Git BASH
Шаг 2: Найдите .gitconfig
, выполнив следующую команду:
git config --list --global --show-origin
Шаг 3: Скопируйте приведенный ниже контент в .gitconfig
:
[http]
proxy = http://YOUR_PROXY_USERNAME:YOUR_PROXY_PASSWORD@YOUR.PROXY.SERVER:YOUR.PROXY.SERVER.PORT
sslverify = false
[https]
proxy = http://YOUR_PROXY_USERNAME:YOUR_PROXY_PASSWORD@YOUR.PROXY.SERVER:YOUR.PROXY.SERVER.PORT
sslverify = false
[url "http://github.com/"]
insteadOf = git://github.com/
[user]
name = Arpit Aggarwal
email = aggarwalarpit.89@gmail.com
Попробуйте добавить в файл ~ / .gitconfig следующее:
[http]
proxy = http://proxy:8080
[https]
proxy = http://proxy:8080
[url "https://"]
insteadOf = git://
Установите системную переменную с именем http_proxy
со значением ProxyServer:Port
. Это самое простое решение. Соответственно, используйте https_proxy
, как указано в комментариях daefu.
Установка gitproxy (как упоминает sleske) является еще одним вариантом, но для этого требуется «команда», которая не так проста, как приведенное выше решение.
Ссылки: http://bardofschool.blogspot.com/2008/11/use-git-behind-proxy.html
Это сработало для меня в Windows XP за корпоративным брандмауэром.
Мне не нужно было устанавливать какой-либо локальный прокси или любое другое программное обеспечение, кроме git v1.771 из http://code.google.com/p/msysgit/downloads/list?can=3
$ git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
$ git config --system http.sslcainfo /bin/curl-ca-bundle.crt
$ git remote add origin https://mygithubuser:mygithubpwd@github.com/repoUser/repoName.git
$ git push origin master
proxyuser = прокси-пользователь, которого я назначил нашим ИТ-отделом, в моем случае это тот же пользователь Windows, которого я использую для входа на свой ПК, пользователь Active Directory
proxypwd = пароль моего прокси-пользователя
proxy.server.com:8080 = имя и порт прокси, я получил его из панели управления , Свойства обозревателя, Соединения, Кнопка «Настройки локальной сети», Кнопка «Дополнительно» в разделе «Прокси-сервер», используйте имя сервера и порт в первой строке (http).
mygithubuser = пользователь, которого я использую для входа на github.com
mygithubpwd = пароль для моего пользователя github.com
repoUser = пользователь-владелец репо
repoName = имя репо
В дополнение к этим ответам я счел полезным рассмотреть следующие 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:proxypwd@proxy.server.com:8080
В любом случае, расследованию может помочь добавление журналов CURL:
export GIT_CURL_VERBOSE=1