2012-07-10 12 views
10

私はHTTP/HTTPSトラフィックのみを許可するプロキシに座っています。私はGithubからリポジトリを複製できますが、https URLとユーザー名/パスワードを使ってフェッチ/プッシュする必要があります。Git Submodule update over https

私の問題は、サブモジュールを持つリポジトリです。git submodule updateを実行するとタイムアウトしてしまいます。これはブロックされているSSH接続を使用しているためです。 (プライベートレポのパスワードも私に尋ねません)

+0

この質問はまた 'パーミッション拒否(公開鍵)'エラーで問題を解決します。 – BlackVegetable

答えて

19

レポのルートにある.gitmodulesファイルと.git/configファイルには、サブモジュールのセクションがあります。そこのURLを編集することができますので、sshではなくhttps要求でアクセスします。

もちろん、すでにsshのURLになっている可能性があります。その場合、問題は他のものかもしれませんが、これが最初にチェックする場所です。

+0

これは非常に役に立ちましたが、私の問題はサブレポジトリ内にサブレポジトリがあるという点でやや複雑でした。ここでは、Linuxで編集されたすべての正しいファイルをどのように入手したのかを示します。 sed -i -eの/ git:\/\ // http:\/\/g '.gitmodules; find。 -nameの設定-type f -exec sed -i -eの/ git:\/\ // http:\/\ // g '{} \; – Tristan

+1

FrançoisKoesslerの答えが示すように、 '' .gitmodules''を編集して '' git submodule sync''を実行することは、これが動作するために必要なステップです! –

16

編集例えばHTTPSのURLを使用して.gitmoduleファイル:

[submodule "vendor/engines/fat_free_crm"] 
    path = vendor/engines/fat_free_crm 
    url = https://github.com/fatfreecrm/fat_free_crm.git 

は、その後、あなたの.git/configファイルに変更を反映するためにgit submodule syncを実行します。

クレジット:https://stackoverflow.com/a/6632693/1273077

+1

「git submodule sync」と言ってくれてありがとう – MohamedEzz

関連する問題