49

自宅のマシンで msysGit (Windows の Git) が問題なく動作していますが、職場では Microsoft ISA プロキシの背後にあり、git クローンを実行すると次のエラーが発生します。

H:\>git clone git://github.com/akitaonrails/vimfiles.git
Initialized empty Git repository in H:/vimfiles/.git/
github.com[0: 65.74.177.129]: errno=Invalid argument
fatal: unable to connect a socket (Invalid argument)

http_proxy 環境変数を次のように設定してみました。

http://our-proxy-server:8088

git http.proxy 構成ディレクティブを設定しました。

git config --global http.proxy http://our-proxy-server:8088

上記のどちらも違いはありません。

http://の代わりにgit clone を実行すると、次の結果がgit://得られます。

H:\>git clone http://github.com/akitaonrails/vimfiles.git
Initialized empty Git repository in H:/vimfiles/.git/
fatal: http://github.com/akitaonrails/vimfiles.git/info/refs download error - The    requested URL returned error: 407

407 はもちろん認証エラーです。

私の質問は次のとおりです。プロキシ、特に ISA プロキシの背後から git を動作させることができた人はいますか? これを追求する価値があるかどうかはわかりません。どんな助けでも大歓迎です。

ありがとう!

4

7 に答える 7

61

まったく同じエラーが発生しました。しかし、~/.gitconfigグローバル構成ファイルが鍵でした。

認証付きのプロキシがある場合は、それに入れる必要があります。

git config --global http.proxy http://login:password@our-proxy-server:8088

そしてそれはちょうど動作します(' git clone http:'で)

同じ設定を詳しく説明しているブログの例:HTTPを介したGITクローン:誰が知っていましたか?


それでも407で失敗する場合は、2番目のHTTPGETでgit-fetchが認証トークンを失う問題に関連している可能性があります。libcurlのより新しいバージョンが必要になる場合があります。


2011年1月の更新:jbustamovejは、彼の回答(賛成)で彼のブログ投稿「GitHubBehindCorporateProxy 」に言及しています。

のようにログインにバックスラッシュが含まれている場合はdomain\login次のようにバックスラッシュをエスケープする必要があることに注意してください。

git config --global http.proxy http://domain\\\login:password@our-proxy-server:8088
于 2009-01-30T17:57:26.147 に答える
19

プロキシを構成した後でも、プロキシが git プロトコル トラフィックを許可していないため、接続できない場合があります。この場合、「git」の代わりに「http」を使用してみてください。

H:>git clone http://github.com/akitaonrails/vimfiles.git

また、自動化されたプロキシ構成ファイル (.pac) を使用している場合は、テキスト エディターで開くだけです。スクリプト言語に従うのは非常に簡単で、最も効率的なプロキシにリダイレクトするための条件がたくさんあります。汎用トラフィックを許可するもの (通常は、最後に構成されたプロキシ) を見つけて、上記のコメントに記載されているように構成します。

于 2009-05-13T19:06:34.080 に答える
3

SOCKS プロキシはありますか? 持っている場合は、FreeCapを試して Git 接続をソックス化してください。私はしばらくの間、この方法で git を使用してきました。

そうでない場合でも、FreeCap を試してください。IIRC では、http プロキシを使用できる可能性がありますが、試したことはありません。

編集:私は通常FreeCapを使用してcmd.exeをsocksifyし、それ以降(ほぼ)そのセッションから開始するすべてのcmdlineプログラムもsocksifiedです。SocksCap (別の代替手段) はそのようには機能しないため、Free Cap をお勧めしたのはそのためです。

http.proxy の使用に関しては、何らかの理由で、mingw バージョンと私の会社の http プロキシでは機能しませんでした。

于 2009-01-30T16:59:25.500 に答える
2

私は非常に複雑なルートを介してそれを機能させることができました。方法は次のとおりです。

  1. Cygwin で実行されているホーム マシン (Vista ボックス) で OpenSSH を実行しています。
  2. 統合された SOCKS/HTTP CONNECT プロキシ経由でBitvise Tunnelier の動的トンネリングを使用しています。
  3. 次に、Freecap (Marko に感謝) を使用して GIT-GUI を "SOCKify" します。残念ながら、各 .exe を個別にセットアップして Freecap 内から実行する必要があるため、すべての git コマンド ライン ツールを普遍的に SOCK 化することはできません。Freecap 内で明示的なコマンドライン コマンドをセットアップできますが、それぞれを個別にセットアップする必要があり、目的に反します。これが、この非常に精巧なシステムで GIT-GUI をセットアップした理由です。

驚くべきことに、まだすべてをテストしていませんが、うまくいくようです。確かに、それはクローンを作成します。これが始まりです。

誰かがより良い解決策を持っているなら、私はすべて耳にします。

于 2009-01-30T18:33:11.770 に答える
1

これが私のために働いたものです:

git config --global http.proxy http://login:password@PROXY_SERVER:PORT
git config --global http.sslVerify false
于 2015-02-03T20:35:33.630 に答える
1

Python 2.7 とntlmapsは、GitHub から 407 エラーやその他のジャンクを取得した後、うまくいきました。

.gitconfig :

[http]
      proxy = http://127.0.0.1:5865
于 2011-04-12T14:32:44.713 に答える
0

Windows7でこの問題が発生しました:

$ git clone git://github.com/facebook/php-sdk.git
Initialized empty Git repository in c:/Users/Jay/temp/php-sdk/.git/
github.com[0: 207.97.227.239]: errno=No error
fatal: unable to connect a socket (No error)

最後に、AVG アンチウイルス ソフトウェアが実行されていることに気付きました。AVG 内の「常駐シールド」を無効にしましたが、今では魅力的に機能しています。

$ git clone git://github.com/facebook/php-sdk.git
Initialized empty Git repository in c:/Users/Jay/temp2/php-sdk/.git/
remote: Counting objects: 223, done.
remote: Compressing objects: 100% (179/179), done.
emote: Total 223 (delta 84), reused 0 (delta 0)
Receiving objects: 100% (223/223), 37.32 KiB, done.
Resolving deltas: 100% (84/84), done.
于 2010-08-11T13:04:42.417 に答える