プロジェクト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
を正しく指すようにするにはどうすればよいですか?
これは明らかに、使用しているgitのバージョンに大きく依存しています。
[submodule "<dirname>"]
ファイルの.gitmodules
セクションのurl
エントリを変更します。[submodule "<dirname>"]
ファイルの.git/config
セクションのurl
エントリを変更します。url
を変更します。 config
ファイルの場所はバージョンによって異なります。古いバージョンは<dirname>/.git/config
にあり、新しいバージョンは.git/modules/<dirname>/config
にあります。ただし、次のコマンドはいつでも使用できます。cd <dirname>
git config remote.Origin.url <new_url>