1

これは一般的なシナリオであるため、重複している必要があります。重複している場合は、適切なリンクを教えてください。

私は、多くのソリューションで使用される共通のプロジェクト (クラス ライブラリ) を持っています。たとえば、dllソリューションAB. したがって、これが現在のディレクトリ構造です。

Solution Common (dll)
      - Project Common

Solution A
      - Project A1

      - Project A2

      - Project Common #only referenced, so logical presence, not in real

Solution B
      - Project B1

      - Project B2

      - Project Common #only referenced, so logical presence, not in real

今私が必要なのは

  1. dllファイルに加えた変更をコミットできるように、git リポジトリを作成しdllます。

  2. ファイルだけでなく、ファイルAに加えた変更をコミットできるように、git リポジトリ。(ビジュアル スタジオでは、1 つのソリューションの下に両方のプロジェクトがあるため、両方を編集するのは簡単ですが、両方を一緒にコミットできるはずです)。また、リポジトリから作成された特定のコミットをプルできれば大歓迎ですが、絶対に必要というわけではありません。Adlldlldll

  3. については上記と同じですB

基本的に、3 つの異なるソリューション フォルダーで個別にコミットできるように 3 つのリポジトリが必要ですが、コミットやプルなどが可能なリポジトリ間でdll共有する機能も必要です。AB

私の質問は次のとおりです。

  1. 出来ますか?

  2. もしそうなら、どのようにリポジトリを構築しますか?

  3. どのようにコミット/プルdllし、Aまとめますか?

Aすでに考えている解決策の 1 つは、その範囲外の 3 つのソリューションすべてに対して 1 つの巨大なリポジトリを用意することですが、および と一緒に他のソリューション フォルダーも持っているので、それは非常に洗練されていないように思えますB

4

1 に答える 1

1

これがgit サブモジュール( madhead言及) の目的であることを確認しますが、サブモジュールは最初に別のリポジトリへの固定参照であることを認識する必要があります。 サブモジュールで直接変更を加えることができますが、次のことを行う必要があります。

  • そのサブモジュールでコミットし、その上流のリポジトリにプッシュします
  • 親リポジトリに戻る
  • その親リポジトリでコミットし(サブモジュールの新しい参照を記録)、親上流リポジトリにプッシュします

(詳細は「サブモジュールの本質」を参照)

これは、各モジュールが独立して進化し、完全なプログラムを形成するために前記モジュールの特定のリビジョンが組み合わされるコンポーネントベースのアプローチに適しています。
(あなたの「巨大なレポ」は、すべてのモジュールが書き込み可能で、最新のリビジョンであるシステムベースのアプローチになります)

于 2013-02-22T21:24:05.290 に答える