私はしばらくの間探していましたが、答えを見つけられませんでした(私は見た目がわからないかもしれません)。複数のリポジトリと1つのサブモジュール
私たちはリポジトリである自己リポジトリ(Libと呼ぶ)を持っています。リポジトリにはモジュールとサブモジュールのほとんどが含まれています。 2GBのサイズを持っているとしましょう...
ここでは、ProjA、ProjB、ProjCなどのプロジェクトが多数あります。それぞれ1つのサブモジュールとしてLibを使用しています。
ProjA
- のLib(ブランチ:マスター、#コミット:1)
ProjB
- のLib(ブランチ:他、#コミット:2)
ProjA
- のLib(ブランチ:マスターは、#をコミット:4)
だから私は、ライブラリ(別名サブモジュール)のバージョンを修正するために参照するすべてのプロジェクトを維持することができるよながら。私は今、3 * 2GB = 6GBの同じサブモジュールを手に入れました。
正しいファイル/バージョン管理を維持しながら、1つのサブモジュールを参照する方法はありますか?
例:
ProjA
のLib/base_lib.h(v1.0の)
のLib/file_only_in_this_commit
ProjB
- のLib/base_l ib.h(v1.0を)
ProjC
- のLib/base_lib.h(V1.1)
ありがとう!
わかりません。リポジトリごとに、サブモジュール内の1つのSHAへの参照しか持たないため、3回追加した理由があります。 'ProjA'、' ProjB'、 'ProjC'はすべて関連して相互作用するので、あなたはこの設定をしていると思いますか?それ以外の場合、これは3つの異なるリポジトリになる可能性があります。または、1つのリポジトリに3つのブランチを持つことができます。その場合は、サブモジュールの1つのバージョンだけを使用して、各ブランチで異なるサブモジュール参照を持つことができます。 – houtanb
初期チェックアウト後にオブジェクトディレクトリを置き換えるハードリンクされたクローン – basin
@basin gitでこのようなハードリンクを定義する方法はありますか?あなたの提案を手動で行うことは実際には問題を解決するものではなく、できるだけスクリプトを避けることを好むでしょう。 – Danra