web-dev-qa-db-ja.com

git:クローンサブモジュールのオリジンを変更します

プロジェクトsubmoduleを作成し、Githubに配置しました。

別のプロジェクトsupermoduleを作成し、次のようにしました。

cd supermodule
git init
mkdir lib
git clone git://github.com/tandu/submodule lib/submodule
git submodule add ./lib/submodule lib/submodule

これは正常に機能しましたが、Webサイトでは、ファイルを表示するときにサブモジュールへのリンクが見つかりません(実際には、「コミットデータの読み込み」と表示されます)。サブモジュールフォルダ自体には正しいOriginがあります。

どうやら、私がすべきだったのは

...
mkdir lib
git submodule add git://github.com/tandu/submodule lib

...しかし、今は手遅れです。このプロジェクトのサブモジュールがOriginを正しく指すようにするにはどうすればよいですか?

27
Explosion Pills

これは明らかに、使用しているgitのバージョンに大きく依存しています。

  1. 存在する場合は、[submodule "<dirname>"]ファイルの.gitmodulesセクションのurlエントリを変更します。
  2. 存在する場合は、[submodule "<dirname>"]ファイルの.git/configセクションのurlエントリを変更します。
  3. サブモジュール自体の構成でurlを変更します。 configファイルの場所はバージョンによって異なります。古いバージョンは<dirname>/.git/configにあり、新しいバージョンは.git/modules/<dirname>/configにあります。ただし、次のコマンドはいつでも使用できます。
cd <dirname>
git config remote.Origin.url <new_url>
52
Michael Wild