注:説明されているユースケースはプロジェクト内でのサブモジュールの使用に関するものですが、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 など)。
最後にうまくいったのはhttp_proxy
環境変数の設定でした。私はHTTP_PROXY
を正しく設定しましたが、gitは明らかに小文字バージョンを好むようです。
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 になります。)
これにはすでにいくつかの素晴らしい答えがあります。ただし、プロキシサーバーによってはユーザー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
それでおしまい!
それはあなたがWindows上でGitのmingwコンパイルを使っているかのようです(あるいは私がまだ聞いたことがないもう一つのもの)。これをデバッグする方法があります:私はgitのためのすべてのhttpプロキシ作業がcurlによって行われると思います。 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"
あなたのネットワークチームが証明書を書き換えて、次にhttpsの代わりにhttpのURLを使ってSSL検査をするとき、この変数の設定が私のために働いた。
git config --global http.proxy http://proxy:8081
.gitconfigファイルを編集することもできます / Windowsシステムの%userprofile%ディレクトリ( メモ帳%userprofile%.gitconfig )、またはLinuxシステムの〜ディレクトリ( vi〜/ .gitconfig)にあります。 )および httpセクションを追加します 以下のように/。
.gitconfigファイルの内容:
[http]
proxy = http://proxy.mycompany:80
これは昔からの質問ですが、Windowsを使用している場合は、httpsのURLを介して取得する場合もHTTPS_PROXYを設定することを検討してください。私のために働いた!
私にとっては、git://はプロキシ経由では動作しませんが、https://は動作します。私はすべてgit://を使ったスクリプトを実行していたので、これは少し頭痛の種になりました。しかし、私はこのGEMを見つけました
git config --global url."https://github.com/".insteadOf git://github.com/
私はhttp.proxy
もGIT_PROXY_COMMAND
も私の認証されたhttpプロキシでは動作しません。プロキシはどちらの方法でも起動されません。しかし、私はこれを回避する方法を見つけます。
認証ファイルを作成します。 authfile
の形式は次のとおりです。user_name:password
、およびuser_name
、password
は、プロキシにアクセスするためのユーザー名とパスワードです。そのようなファイルを作成するためには、単にこのようなコマンドを実行してください:echo "username:password" > ~/.ssh/authfile
。
~/.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 でも同じことが簡単にできます。
これは他のアプローチほどエレガントではありませんが、魅力的なように機能します。
Windowsでは、パスワードをプレーンテキストの.gitconfigに入れたくない場合は、次のようにします。
通常の、あるいはWindows NTLMのプロキシでさえあなたを認証し、認証なしでlocalhost-proxyを起動します。
実行させるには:
あなたの新しいlocalhostプロキシにgitを向けてください:
[http]
proxy = http://localhost:3128 # change port as necessary
私にとってそれがうまくいったのは次のとおりです。
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 config --global http.proxy http://user:password@domain:port
git config --global http.proxy http://clairton:[email protected]:8080
これがGoogleでの最初の結果であるため、これを投稿するために、私が見つけたこのブログ投稿は、カール証明書を更新することで問題を解決しました。
http://www.simplicidade.org/notes/archives/2011/06/github_ssl_ca_errors.html
これは私に働きました。
git config --global http.proxy proxy_user:proxy_passwd@proxy_ip:proxy_port
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
今、あなたは行ってもいいです!
私は同じ問題を抱えていましたが、若干異なる修正を加えました: 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
の私のバージョンのデフォルトです)。
私はそれを修正するために以下をしました:
Makeに必要なヘッダを追加しました:
yum install curl-devel
(expat-devel-1.95.8-8.3.el5_5.3.i386 was already installed).
/usr/local
からgit
を削除しました(新しいインストールをそこに置いておきたいので)。
git*
と/usr/local/share
から/usr/local/libexec
を削除しただけです
curl
およびexpat
ヘッダーファイルを含むインクルードディレクトリを検索し、(configure
を読んだので)次のようにこれらを環境に追加しました。
export CURLDIR=/usr/include
export EXPATDIR=/usr/include
以下のオプションでconfigure
を実行しました。これもconfigure
ファイル自体に記述されていて、デフォルトでもありましたが、一体何が必要なのでしょう。
./configure --with-curl --with-expat
そして今、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
...
あなたが使用することができます:
git config --add http.proxy http://user:password@proxy_Host:proxy_port
$ http_proxyは http://github.com ....用です$ https_proxyは https://github.com ...用です.
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設定
私のプロキシが認証を必要としないとき、上記の答えは私のために働きました。認証が必要なプロキシを使用している場合は、CCProxyを試してください。私はここでそれを設定する方法についての小さなチュートリアルを持っています、
http://blog.praveenkumar.co.in/2012/09/proxy-free-windows-xp78-and-mobiles.html
プッシュ、プル、新しいリポジトリの作成ができました。すべてうまくいった。私のようにGitで問題が発生した場合は、必ず新しいバージョンのアンインストールと再インストールを行ってください。
私は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
@ user2188765はすでに指摘したように、リポジトリのgit://
プロトコルをhttp[s]://
に置き換えてみてください。また見なさい この答え
これは多くの人によって答えられたが、これはちょうど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