HTTPプロキシの背後で作業しています。 「レポ」ツールを使用して、Androidのソースツリーのクローンを作成しようとしています。
このツールは、git://
URLも使用できますが、http://
URLを使用することを主張します。その結果、ソースをダウンロードできません。
git
が常にhttp
を使用するように強制することは可能ですか?
Edit:http_proxyが正しく構成されています。たとえば、これは機能します:
git clone http://Android.git.kernel.org/platform/manifest.git
しかし、これはしません(errno = Connection timed out):
git clone git://Android.git.kernel.org/platform/manifest.git
この答え は本当に助けにはなりません。
GitHubのデフォルトプロトコルを書き換える例を次に示します。
git config --global url.https://github.com/.insteadOf git://github.com/
repo ツールがGitをどのように使用するかわかりません(httpプロトコルを使用するように 'repo'を構成できる場合)が、url.<base>.insteadOf
構成変数(参照 git-config および git-fetch マンページ)。
core.gitProxy
を使用して、ファイアウォールを通過しようとしましたか(それがgitプロトコルを使用している場合の問題ですか)。
Gitリポジトリでサブモジュールを再帰的に取得する場合にも同じ問題が発生しました。私はgitポートでの発信接続を許可しないクレイジーファイアウォールの背後にいます。サブモジュールのサブモジュールの一部は、git://github.com/blah/blah.git
としてコーディングされています。これにより、サブモジュールの再帰的な集団が殺されました。回避策は次のとおりです。
git config --global url."https://<GITUSERNAME>@".insteadOf git://
これにより、すべてのサブモジュールリポジトリURLでgit://
がhttps://<GITUSERNAME>@
に置き換えられます。 <GITUSERNAME>
を独自のgitユーザー名に置き換える必要があります。 --global
が必須であることにも注意してください。この設定をベースリポジトリディレクトリに追加するだけでは機能しません。
SSHをhttps://で上書きしている場合、またはその逆の場合は、~/.gitconfig
で確認できます。