web-dev-qa-db-ja.com

`git:` URLを `http:` URLに変換する方法

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

この答え は本当に助けにはなりません。

129
noamtm

GitHubのデフォルトプロトコルを書き換える例を次に示します。

git config --global url.https://github.com/.insteadOf git://github.com/
286
Tobu

repo ツールがGitをどのように使用するかわかりません(httpプロトコルを使用するように 'repo'を構成できる場合)が、url.<base>.insteadOf構成変数(参照 git-config および git-fetch マンページ)。

core.gitProxyを使用して、ファイアウォールを通過しようとしましたか(それがgitプロトコルを使用している場合の問題ですか)。

35
Jakub Narębski

Gitリポジトリでサブモジュールを再帰的に取得する場合にも同じ問題が発生しました。私はgitポートでの発信接続を許可しないクレイジーファイアウォールの背後にいます。サブモジュールのサブモジュールの一部は、git://github.com/blah/blah.gitとしてコーディングされています。これにより、サブモジュールの再帰的な集団が殺されました。回避策は次のとおりです。

git config --global url."https://<GITUSERNAME>@".insteadOf git://

これにより、すべてのサブモジュールリポジトリURLでgit://https://<GITUSERNAME>@に置き換えられます。 <GITUSERNAME>を独自のgitユーザー名に置き換える必要があります。 --globalが必須であることにも注意してください。この設定をベースリポジトリディレクトリに追加するだけでは機能しません。

22
crcastle

SSHをhttps://で上書きしている場合、またはその逆の場合は、~/.gitconfigで確認できます。

3
piperchester