web-dev-qa-db-ja.com

HTTPプロキシを介してGitリポジトリから取得する方法

注:説明されているユースケースはプロジェクト内でのサブモジュールの使用に関するものですが、HTTPを介したリポジトリの通常のgit cloneにも同じことが当てはまります。

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

Httpプロキシ用のグローバルGit設定もあります。

c:\project> git config --get http.proxy
http://proxy.mycompany:80

誰かが一貫してプロキシを介して動作するようにHTTPの取得を得ていますか?本当に奇妙なことに、GitHub上のいくつかのプロジェクトはうまく動作しますが( awesome_nested_set など)、他のプロジェクトは一貫して失敗します( Rails など)。

466
James A. Rosen

最後にうまくいったのはhttp_proxy環境変数の設定でした。私はHTTP_PROXYを正しく設定しましたが、gitは明らかに小文字バージョンを好むようです。

120
James A. Rosen

Gitが使用するHTTPプロキシをグローバル設定プロパティhttp.proxyで設定することもできます。

git config --global http.proxy http://proxy.mycompany:80

プロキシで認証するには

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

(認証形式については、クレジットは @EugeneKulabuhov および @JaimeReynoso になります。)

554
Derek Mahar

これにはすでにいくつかの素晴らしい答えがあります。ただし、プロキシサーバーによってはユーザーIDとパスワードで認証する必要があるため、チップインすることを考えました。時にはこれはドメイン上にすることができます。

たとえば、プロキシサーバーの構成が次のようになっているとします。

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

次に、以下のコマンドを使用して.gitconfigファイルに追加します。

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

httpsを心配しないでください。指定されたプロキシサーバーがhttpとhttpsをサポートしている限り、設定ファイル内の1つのエントリで十分です。

.gitconfigを実行することで、コマンドがエントリをcat .gitconfigファイルに正常に追加したことを確認できます。

ファイルの最後に次のようなエントリがあります。

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

それでおしまい!

145
Max MacLeod

それはあなたがWindows上でGitのmingwコンパイルを使っているかのようです(あるいは私がまだ聞いたことがないもう一つのもの)。これをデバッグする方法があります:私はgitのためのすべてのhttpプロキシ作業がcurlによって行われると思います。 gitを実行する前にこの環境変数を設定してください。

GIT_CURL_VERBOSE=1

これは少なくともあなたに舞台裏で何が起こっているのかの考えを与えるはずです。

48
sethbc

特定のリポジトリでプロキシを使用したいだけなら、他のリポジトリでは必要ありません。望ましい方法は、リポジトリを-c, --config <key=value>するときのgit cloneオプションです。例えば.

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

あなたのネットワークチームが証明書を書き換えて、次にhttpsの代わりにhttpのURLを使ってSSL検査をするとき、この変数の設定が私のために働いた。

git config --global http.proxy http://proxy:8081
25
bbaassssiiee

.gitconfigファイルを編集することもできます / Windowsシステムの%userprofile%ディレクトリ( メモ帳%userprofile%.gitconfig )、またはLinuxシステムの〜ディレクトリ( vi〜/ .gitconfig)にあります。 )および httpセクションを追加します 以下のように/。

.gitconfigファイルの内容:

[http]
        proxy = http://proxy.mycompany:80
19
STB Land

これは昔からの質問ですが、Windowsを使用している場合は、httpsのURLを介して取得する場合もHTTPS_PROXYを設定することを検討してください。私のために働いた!

16

私にとっては、git://はプロキシ経由では動作しませんが、https://は動作します。私はすべてgit://を使ったスクリプトを実行していたので、これは少し頭痛の種になりました。しかし、私はこのGEMを見つけました

git config --global url."https://github.com/".insteadOf git://github.com/
15

私はhttp.proxyGIT_PROXY_COMMANDも私の認証されたhttpプロキシでは動作しません。プロキシはどちらの方法でも起動されません。しかし、私はこれを回避する方法を見つけます。

  1. corkscrew 、またはあなたが望む他の方法をインストールしてください。
  2. 認証ファイルを作成します。 authfileの形式は次のとおりです。user_name:password、およびuser_namepasswordは、プロキシにアクセスするためのユーザー名とパスワードです。そのようなファイルを作成するためには、単にこのようなコマンドを実行してください: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

[email protected]で何かをするときはいつでも、それは自動的にプロキシを使います。 Bitbucket でも同じことが簡単にできます。

これは他のアプローチほどエレガントではありませんが、魅力的なように機能します。

11
Carlosin

Windowsでは、パスワードをプレーンテキストの.gitconfigに入れたくない場合は、次のようにします。

通常の、あるいはWindows NTLMのプロキシでさえあなたを認証し、認証なしでlocalhost-proxyを起動します。

実行させるには:

  • Cntmlをインストールする
  • プロキシ認証に合格するように、ドキュメントに従ってCntmlを設定します。
  • あなたの新しいlocalhostプロキシにgitを向けてください:

    [http]
        proxy = http://localhost:3128       # change port as necessary
    
10
Boris Brodski

私にとってそれがうまくいったのは次のとおりです。

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
6
Lesswire

Gitにプロキシを設定する

コマンド

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

git config --global http.proxy http://clairton:[email protected]:8080
5
Clairton Luz

これがGoogleでの最初の結果であるため、これを投稿するために、私が見つけたこのブログ投稿は、カール証明書を更新することで問題を解決しました。

http://www.simplicidade.org/notes/archives/2011/06/github_ssl_ca_errors.html

5
RishiD

これは私に働きました。

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

Git credential.helperをwincredに設定します。

git config --global credential.helper wincred

1つのcredential.helperのみがあることを確認してください。

git config -l

1つ以上あり、それが傷ついているように設定されていない場合はそれを削除してください。

git config --system --unset credential.helper

今すぐパスワードなしでプロキシを設定します。

git config --global http.proxy http://<YOUR WIN LOGIN NAME>@proxy:80

追加したすべての設定が正しく表示されていることを確認してください。

git config --global -l

今、あなたは行ってもいいです!

3
Thor88

私は同じ問題を抱えていましたが、若干異なる修正を加えました: HTTPサポート付きのリビルドGIT

git:プロトコルは私の会社のファイアウォールを通過しませんでした。

たとえば、これはタイムアウトしました。

git clone git://github.com/miksago/node-websocket-server.git

curl github.comは問題なく動作するので、http_proxy環境変数が正しいことを私は知っています。

以下のようにhttpを使用しようとしましたが、すぐにエラーが発生しました。

git clone http://github.com/miksago/node-websocket-server.git

->>>  fatal: Unable to find remote helper for 'http' <<<-

私はgitを再コンパイルしてみました。

./configure  --with-curl --with-expat

それでも致命的なエラーが発生しました。

最後に、イライラする数時間後、私は設定ファイルを読み、これを見ました:

#カールヘッダとライブラリファイルがある場合は、CURLDIR =/foo/barを定義します。

#/ foo/bar/includeおよび/ foo/bar/libディレクトリ。

私はその時、私はソースからのcurlを遵守していなかったことを思い出したので、ヘッダーファイルを探しに行きました。案の定、彼らはインストールされていませんでした。それが問題でした。 Makeは見つからないヘッダファイルについて文句を言わなかった。だから私は--with-curlオプションが何もしなかったことに気づきませんでした(それは実際にはgitの私のバージョンのデフォルトです)。

私はそれを修正するために以下をしました:

  1. Makeに必要なヘッダを追加しました:

    yum install curl-devel
    (expat-devel-1.95.8-8.3.el5_5.3.i386  was already installed).
    
  2. /usr/localからgitを削除しました(新しいインストールをそこに置いておきたいので)。

    git*/usr/local/shareから/usr/local/libexecを削除しただけです

  3. curlおよびexpatヘッダーファイルを含むインクルードディレクトリを検索し、(configureを読んだので)次のようにこれらを環境に追加しました。

    export CURLDIR=/usr/include 
    export EXPATDIR=/usr/include
    
  4. 以下のオプションでconfigureを実行しました。これもconfigureファイル自体に記述されていて、デフォルトでもありましたが、一体何が必要なのでしょう。

    ./configure  --with-curl --with-expat
    
  5. そして今、httpは私の企業ファイアウォールを通してgitと連携します。

    git clone http://github.com/miksago/node-websocket-server.git
    Cloning into 'node-websocket-server'...
    * Couldn't find Host github.com in the .netrc file, using defaults
    * About to connect() to proxy proxy.entp.attws.com port 8080
    *   Trying 135.214.40.30... * connected
    ...
    
3
steve98177

あなたが使用することができます:

git config --add http.proxy http://user:password@proxy_Host:proxy_port
2
montells

これはあなたのプロキシには問題ありません。それはgithub(またはgit)の問題です。 Linux上のgit-1.6.0.1でも私には失敗します。 バグ はすでに報告されています(あなたよりも少なくありません)。

あなたのお菓子を削除するようにしてください、彼らはすでにグーグルにいます。編集:夢を見てきた、私はあなたがそれらを削除することはできませんね。代わりに Gist を使用しますか?

1
sethbc

$ http_proxyは http://github.com ....用です$ https_proxyは https://github.com ...用です.

1
jimagic

proxychains を使用

proxychains git pull ...

update: proxychainsは廃止されました。代わりに proxychains-ng を使用してください。

1
fangxing

Windowsの場合

ジャンプ - > C:/ Users/user_name/gitconfig

以下の詳細でgitconfigファイルを更新してください

[http]

[https]

proxy = https://your_proxy:your_port

[http]

proxy = http://your_proxy:your_port

プロキシとポート番号を確認するにはどうすればいいですか?

Internet Explorer - >設定 - >インターネットオプション - >接続 - > LAN設定

1
School Boy

私のプロキシが認証を必要としないとき、上記の答えは私のために働きました。認証が必要なプロキシを使用している場合は、CCProxyを試してください。私はここでそれを設定する方法についての小さなチュートリアルを持っています、

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

プッシュ、プル、新しいリポジトリの作成ができました。すべてうまくいった。私のようにGitで問題が発生した場合は、必ず新しいバージョンのアンインストールと再インストールを行ってください。

0
Praveen

私はhttpsを使ってプロキシを回避しました...いくつかのプロキシはhttpsさえチェックしません。

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

c:\git\meantest>git clone http://github.com/linnovate/mean.git
Cloning into 'mean'...
fatal: unable to access 'http://github.com/linnovate/mean.git/': Failed connect
to github.com:80; No error

c:\git\meantest>git clone https://github.com/linnovate/mean.git
Cloning into 'mean'...
remote: Reusing existing pack: 2587, done.
remote: Counting objects: 27, done.
remote: Compressing objects: 100% (24/24), done.
rRemote: Total 2614 (delta 3), reused 4 (delta 0)eceiving objects:  98% (2562/26

Receiving objects: 100% (2614/2614), 1.76 MiB | 305.00 KiB/s, done.
Resolving deltas: 100% (1166/1166), done.
Checking connectivity... done
0
Rob Koch

@ user2188765はすでに指摘したように、リポジトリのgit://プロトコルをhttp[s]://に置き換えてみてください。また見なさい この答え

0
DomTomCat

これは多くの人によって答えられたが、これはちょうどauthとのプロキシの後ろにいる Winodws USERのためである。

再インストール(最初に失敗しました。削除しないでください)。

Goto ->
**Windows**
1. msysgit\installer-tmp\etc\gitconfig
    Under [http]
        proxy = http://user:pass@url:port

**Linux**
1. msysgit\installer-tmp\setup-msysgit.sh
      export HTTP_PROXY="http://USER:[email protected]:8080"

ユーザに特別な文字がある場合/ pass use url_encode

0
Ravi Parekh