1

約 10 個のサブモジュールといくつかのネストされたサブモジュールを含むトップ プロジェクトがあります。

./top-project/
./top-project/module-a
./top-project/module-b
...

一部のサブモジュールには のような従来の URL がありurl = git:software/module-a、他のサブモジュールには のような相対リモート トップ プロジェクトの URL がありurl = ../module-bます。トップ プロジェクトの URL はurl = git:software/top-project.

top-project とそのすべてのサブモジュールのワークツリー コピーを作成したいと考えています。

git worktree add -f ../top-project-v2

しかし、サブモジュールが元のパスを指すようにする方法が見つかりません。そのtop-project-v2/module-agit が を指していてtop-project/module-a、真新しい module-a のクローンを作成しないでほしいと思います。

実行するcd top-project-v2; git submodule upate --init --recursiveと、コマンドは成功しますが、サブモジュールは最上位プロジェクトのサブモジュールにリンクされません。

するとgit checkout --recurse-submodules origin/v2、エラーが発生します。

git checkout --recurse-submodules origin/v2
fatal: not a git repository: ../../top-project/.git/worktrees/top-project-v2/modules/module-a
fatal: could not reset submodule index

そうする方法はありますか?

4

1 に答える 1