37

プロジェクトを作成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ですか?

4

2 に答える 2

66

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

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

他の質問では、より現代的なGitバージョン(2.25)の答えを見つけました

git submodule [--quiet] set-url [--] <path> <newurl>

external/foo-lib起点がであるディレクトリにサブモジュールがhttps://github.com/example-user/foo-lib.gitあり、それを自分のフォークに変更してからhttps://github.com/your-account/foo-lib.git、gitプロジェクトタイプのルートディレクトリにあると仮定します。

git submodule set-url external/foo-lib https://github.com/your-account/foo-lib.git

于 2021-02-06T01:22:30.837 に答える