web-dev-qa-db-ja.com

プロキシサーバーでgitを動かす

プロキシサーバーを使うにはどうすればいいですか?

私はgitサーバーからコードをチェックアウトする必要があります。毎回 "Request timed out"と表示されますこれを回避するにはどうすればよいですか。 

あるいは、プロキシサーバーを設定するにはどうすればよいですか?

829
PlagueHammer

使用するコマンド

git config --global http.proxy http://proxyuser:[email protected]:8080
  • proxyuserをあなたのプロキシユーザに変更します
  • proxypwdをあなたのプロキシパスワードに変更してください。
  • proxy.server.comをプロキシサーバーのURLに変更します。
  • 8080をプロキシサーバーに設定されているプロキシポートに変更します。

いつでもこのプロキシをリセットしてプロキシなしで動作することにした場合:

使用するコマンド

git config --global --unset http.proxy

最後に、現在設定されているプロキシを確認します。

git config --global --get http.proxy
1498
Salim Hamidi

これは私にとって、企業のファイアウォールの内側にあるウィンドウXPでうまくいきました。

http://code.google.com/p/msysgit/downloads/list?can=3 からgit v1.771以外にローカルプロキシやその他のソフトウェアをインストールする必要はありませんでした。

$ git config --global http.proxy http://proxyuser:[email protected]:8080
$ git config --system http.sslcainfo /bin/curl-ca-bundle.crt
$ git remote add Origin https://mygithubuser:[email protected]/repoUser/repoName.git
$ git Push Origin master

proxyuser =私のIT部門から割り当てられたプロキシユーザー。私の場合は、自分のPCにログインするときに使用したのと同じWindowsユーザー、Active Directoryユーザーです。

proxypwd =私のプロキシユーザーのパスワード

proxy.server.com:8080 =プロキシの名前とポート、[コントロールパネル]、[インターネットオプション]、[接続]、[LANの設定]ボタン、[プロキシサーバー]セクションの[詳細]ボタンから取得最初の(http)行.

mygithubuser =私がgithub.comにログインするために使用するユーザー

mygithubpwd =私のgithub.comユーザーのパスワード

repoUser =リポジトリのユーザー所有者

repoName =リポジトリの名前

124
alvaro

http_proxyという名前のシステム変数にProxyServer:Portの値を設定します。これが最も簡単な解決策です。それぞれ、コメントで指摘されているようにhttps_proxyを使用してください。

Glesproxyを設定すること(別の方法で言及されているように)は別の選択肢ですが、それは "コマンド"を必要とします。

参考文献: http://bardofschool.blogspot.com/2008/11/use-git-behind-proxy.html

48
PlagueHammer

プロキシサーバーを設定するコマンドラインの方法がうまくいかない場合は、をクリックしてください。プロファイルのルートにある.gitconfigを編集するだけで済みます。ドライブ)とこれを追加:

[http]
    proxy = http://username:[email protected]:8080

しかし、YMMVでは、これはコマンドライン設定の最初のステップのみをカバーしています。あなたはsystem git設定も編集しなければならないかもしれません、そして、私は彼らがどこでそれを隠したかわかりません。

36
Randakar

git config --global http.proxy address:portを使用する代わりに、コマンドラインでプロキシを設定することができます。

git -c "http.proxy=address:port" clone https://...

利点は、プロキシが永続的に設定されていないことです。 Bashでは、エイリアスを設定することができます。

alias git-proxy='git -c "http.proxy=address:port"'
28
Steve Pitchers

あなたがubuntuを使用している場合は、次の手順を実行します。

ステップ1:栓抜きの取り付け

$ Sudo apt-get install corkscrew

ステップ2:git-proxy.shという名前のスクリプトを作成して、以下を追加します。

#!/bin/sh

exec corkscrew <name of proxy server> <port> $*

# <name_of_proxy_server> and <port> are the ip address and port of the server
# e.g. exec corkscrew 192.168.0.1 808 $*

ステップ3:スクリプトを実行可能にする

$ chmod +x git-proxy.sh

ステップ4:環境変数を設定してGIT用のプロキシコマンドを設定する

$ export GIT_PROXY_COMMAND="/<path>/git-proxy.sh"

では、次のようにgitコマンドを使ってください。

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
19
Sk Hasanujjaman

ウィンドウ内に複数の.gitconfigファイルがあるため、同じ問題に直面しました。以下の手順に従って同じ問題を解決しました。

ステップ1: Open Git BASH

ステップ2: / .gitconfigを探し、次のコマンドを実行します。

git config --list --global --show-Origin

ステップ3: / .gitconfig内の以下の内容をコピーします。

[http]
    proxy = http://YOUR_PROXY_USERNAME:[email protected]:YOUR.PROXY.SERVER.PORT
    sslverify = false
[https]
    proxy = http://YOUR_PROXY_USERNAME:[email protected]:YOUR.PROXY.SERVER.PORT
    sslverify = false
[url "http://github.com/"]
    insteadOf = git://github.com/

[user]
    name = Arpit Aggarwal
    email = [email protected]
11
Arpit

以下を〜/ .gitconfigファイルに追加してみてください。

[http]
    proxy = http://proxy:8080
[https]
    proxy = http://proxy:8080
[url "https://"]
    insteadOf = git://
9
augustocbx

Gitプロトコル(git:// ...)の場合は、socatをインストールして次のようなスクリプトを作成します。

#!/bin/sh

exec socat - socks4:your.company.com:$1:$2

それを実行可能にし、それをあなたのパスに入れ、そしてあなたの~/.gitconfigにセットし、core.gitproxyをそのスクリプトの名前にセットしてください。

7
ashutosh

これらの答えに加えて、私はこれらの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:[email protected]:8080

とにかく、調査はCURLログを追加することによって助けられるかもしれません:

export GIT_CURL_VERBOSE=1
5
blacelle

私が気づいたものがあり、ここで共有したいと思います。

git config --global http.proxy http://<proxy address>:<port number>

上記の方法はsshのURLでは機能しません:(つまり[email protected]:<user name>/<project name>.git

git clone [email protected]:<user name>/<project name>.git // this will not use the above proxy!

また、HTTPSポートにSSHを設定しても( https://help.github.com/en/articles/using-ssh-over-the-https-port )ポートを変更するだけなので、状況は変わりません。 (デフォルトで22)ssh接続が接続します。

(ネイティブスピーカーではありません、必要に応じて私の言葉を洗練してください)

4
miāo

私は仕事中にWindows XPで作業しています(state/gov)。そこで私は調査を行い、この here を見つけてそれがうまくいきました。これが助けになることを願います:)

http_proxy環境変数

プロキシサーバーやファイアウォールを使用している場合は、コマンドラインからURLにアクセスするためにhttp_proxy環境変数を設定する必要があるかもしれません。

Http_proxy変数にプロキシサーバーのホスト名またはIPアドレスを設定します。 http_proxy = http:// [proxy.example.org]

プロキシサーバーにユーザー名とパスワードが必要な場合は、それらを次の形式で含めます。 http_proxy = http:// [username:[email protected]]

プロキシサーバーが80以外のポートを使用する場合は、ポート番号を含めます。 http_proxy = http:// [username:[email protected]:8080]

Windows XP

  1. コントロールパネルを開き、システムアイコンをクリックします。
  2. 詳細設定タブで、環境変数をクリックします。
  3. [システム環境変数]パネルで[新規]をクリックします。
  4. 適切なプロキシ情報を付けてhttp_proxyを追加します(上記の例を参照)。

Linux、Solaris、またはHP-UX

シェル固有のコマンド(例:setまたはexport)を使用して、http_proxy環境変数を設定します。この変更を永続的にするには、シェルの適切なプロファイルファイルにコマンドを追加してください。たとえば、bashで、.bash_profileファイルまたは.bashrcファイルに次のような行を追加します。

  1. http_proxy = http:// [ユーザー名:パスワード@ホスト名:ポート];
  2. $ http_proxyをエクスポート
4
Shak Daniel

tsocks または proxychains がインストールおよび設定されている場合は、次のことができます。

$ tsocks git clone <you_repository>

または

$ proxychains git clone <you_repository>

短くするために、proxychainsに対して/usr/bin/pというシンボルリンクを作成したので、このように使用できます。

p git clone <you_repository>

そして私はそれを使ってあらゆるコマンドを代理することができます。

p <cmd-need-be-proxied>

ところで、proxychainsは長い間更新されていません、あなたは proxychians-ng を試してみたいかもしれません

3
fangxing

端末にgitプロキシを設定する

もし 

  • gitプロジェクトごとに手動で1つずつプロキシを設定したくない
  • 常にすべてのプロジェクトに同じプロキシを使用したい

一度グローバルに設定

git config --global http.proxy username:password@proxy_url:proxy_port
git config --global https.proxy username:password@proxy_url:proxy_port

1つのgitプロジェクトのみにプロキシを設定したい場合(いくつかのgit接続に同じプロキシまたはまったくプロキシを使用したくない場合があります)

//go to project root
cd /bla_bla/project_root
//set proxy for both http and https
git config http.proxy username:password@proxy_url:proxy_port
git config https.proxy username:password@proxy_url:proxy_port

現在のプロキシ設定を表示したい場合

git config --list 

グローバルにプロキシを削除したい場合

git config --global --unset http.proxy
git config --global --unset https.proxy

1つのgitルートだけのプロキシを削除したい場合

//go to project root
cd /bla-bla/project_root
git config --unset http.proxy
git config --unset https.proxy
2
Add080bbA

Windowsをお使いの方へ:git configまたはset http_proxy=が機能しない場合、 この答え は役に立ちます。

gitリポジトリのgit://プロトコルをhttp://に置き換えます。とにかく、最初にhttp_proxyを設定する必要があります。

1
DomTomCat

これがプロキシ設定です

git config --global http.proxy http://<username>:<pass>@<ip>:<port>
git config --global https.proxy http://<username>:<pass>@<ip>:<port>
1
hannad rehman

このページですべての解決策をたゆまずに試した後、私の回避策は代わりにSSHキーを使用することでした! 

  1. Open Git Bash
  2. $ ssh-keygen.exe -t rsa -C 
  3. Gitプロバイダ(Github、Bitbucketなど)を開きます。
  4. Id_rsa.pubファイルの内容をGitプロバイダーの入力ページにコピーして追加します(プロフィールを確認してください)
0
Janac Meena

私は上記のすべての答えを試してみましたが、プロキシパスワードのエンコードの問題があったため、何もうまくいきませんでした。

このコマンドはうまくいきました:

git config --global http-proxy http://[email protected]:PortNumber 

コマンドにパスワードを入力しないでください。いつgitリポジトリに接続しようとしたかが動的に尋ねられます。

0
Ishtdeep Hora

私はここで推薦された答えのほとんどをたどった。最初に私は以下のエラーを受け取りました:

fatal:にアクセスできない ' https://github.com/folder/sample.git/ ':schannel:next InitializeSecurityContextが失敗しました:不明なエラー(0x80092012) - [ [] ____]失効機能が[]証明書の失効を確認できませんでした。

それから私は@Salim Hamidiによって次のコマンドを試してみました 

git config --global http.proxy http://proxyuser:[email protected]:8080

しかし、私は次のエラーが出ました:

fatal:にアクセスできない ' https://github.com/folder/sample.git/ ':CONNECT後にプロキシからHTTPコード 407を受信しました

これは、プロキシサーバーがSSL証明書を検証できない場合に起こります。そのため、ssl検証がオフになっていることを確認したい(信頼されていないサイトにはお勧めできません)ので、@ Arpitが推奨する次の手順を少し変更して行いました。

1.まず、以前のプロキシ設定をすべて削除してください。

git config --global --unset http.proxy

2.次に、gitconfigの内容を一覧表示して取得します。 

git config --list --show-Origin

以下のようにgitconfigファイルの内容を最後に更新します。

[http]
sslCAInfo = C:/yourfolder/AppData/Local/Programs/Git/mingw64/ssl/certs/ca-bundle.crt
sslBackend = schannel
proxy = http://proxyuser:[email protected]:8080
sslverify = false
[https]
proxy = http://proxyuser:[email protected]:8080
sslverify = false
0
Wael Almadhoun