私はGitにいくつかのサブモジュールを持つプロジェクトを持っています.メインプロジェクトを使用するには、それらのサブモジュールをダウンロードしてファイルを利用できるようにする必要があります.サブモジュールを機能させるには、独自のサブモジュールを利用できるようにする必要があります.これを設定するために、 を使用してサブモジュールを再帰的に初期化しgit submodule update --init --recursive
ます。
ただし、サブモジュールの多くが依存関係を共有していることに気付きました。これは、疑似コードで次のようになっています (サブモジュールalpha -> beta
を持つことを表します) 。alpha
beta
my project -> submodule a -> submodule m
-> submodule b -> submodule m
-> submodule n -> submodule x
-> submodule c -> submodule x
私の質問は、各サブモジュールのファイル (少なくとも 1 つのコピー) を保持しながら、git のみを使用してこの重複を回避する方法はありますか?
シンボリックリンクを使用した解決策を想像することはできますが、git がこれを処理してくれるのが望ましいです。自分でシンボリックリンクを挿入すると、サブモジュールを更新するときに問題が発生するかどうかはわかりません。
理想的には、次のように単純化したいと思います。
my project -> submodule a -> symlink(submodule m)
-> submodule b -> symlink(submodule m)
-> symlink(submodule n)
-> submodule c -> symlink(submodule x)
-> submodule m
-> submodule n -> symlink(submodule x)
-> submodule x
提案をお寄せいただきありがとうございます。