1. ホーム
  2. git

[解決済み] git サブモジュールを他のレポに置き換えるには?

2022-11-06 21:46:18

質問

git サブモジュールを別の git リポジトリに置き換えるにはどうすればよいですか?

具体的には、あるサブモジュールがあります。

  • にあります。 ./ExternalFrameworks/TestFramework は、git リポジトリを指す [email protected]:userA/TestFramework.git
  • を指すようにしたいと思います。 [email protected]:userB/TestFramework.git .

問題は、記述されている方法でサブモジュールを削除すると ここで で削除し、コマンド

git submodule add [email protected]:userB/TestFramework.git

こんなエラーが出ます。

A git directory for 'ExternalFrameworks/TestFramework' is found locally with remote(s):
  origin    [email protected]:userA/TestFramework.git
If you want to reuse this local git directory instead of cloning again from
  [email protected]:userB/TestFramework.git
use the '--force' option. If the local git directory is not the correct repo
or you are unsure what this means choose another name with the '--name' option.

どのように解決するのですか?

サブモジュールの場所(URL)が変更された場合、単純に

  1. を修正します。 .gitmodule ファイルを修正して、新しい URL を使用するようにします。
  2. レポのサブモジュールフォルダを削除する rm -rf .git/modules/<submodule>
  3. 作業ディレクトリのサブモジュールフォルダを削除する rm -rf <submodule>
  4. 実行 git submodule sync
  5. 実行 git submodule update

より完全な情報は、他の場所で見つけることができます。