2

私は git バージョン管理を使用しており、同じベース ディレクトリを使用する複数のプロジェクトがありますが、いくつかの変更はプロジェクト固有のものです。

スーパーフォルダー (私の場合は root/private/core) とパブリックおよびプライベートの両方のプロジェクト固有のディレクトリを同じ git リポジトリで追跡できる方法はありますか。また、あるプロジェクトでコア ファイルに変更を加えた場合、他のプロジェクトの git repo にも変更が加えられるようにしたいと考えています。

私が思いついた方法は、ルートフォルダーにgitリポジトリを作成してから、プロジェクトのブランチを作成し、他のプロジェクトファイルを追跡しないことです。しかし、この方法では、他のプロジェクトのコアの変更をマージする必要があり、この場合はブランチがプロジェクトとして使用されるため、一種の論理エラーもあります。

サブモジュールも調べましたが、それも最善の解決策ではないようです。プロジェクトのディレクトリ システムを変更する必要がある解決策がある場合は、それを行うことができますが、パブリック ディレクトリ、プライベート ディレクトリ、およびコア ディレクトリを別々に保持したいと考えています。

現時点での私のディレクトリの簡略化された例:

    • プライベート
      • プロジェクト
        • プロジェクト1
        • プロジェクト2
    • 公衆
      • プロジェクト1
      • プロジェクト2

プライベート プロジェクト フォルダーにはプロジェクト固有のコア php 拡張機能があり、パブリック プロジェクト フォルダーにはスタイルシート、javascript、およびインデックスのみがあります。

4

2 に答える 2

1

サブモジュール(独自の制限があります-「メインプロジェクト内からサブモジュールの内容を変更することはできません」-通常のGitワークフローを変更します)の代わりに、 git-subtreeについて考えることができます。この場合、コアは次のように追加されますすべてのスーパープロジェクトのサブツリー (ただし、個別のリポジトリとして存在します)。あなたの状態を連想させる状況での git-subtree のユースケース

于 2012-12-13T18:28:16.047 に答える
0

サブモジュールも調べましたが、それも最善の解決策ではないようです

それでも、次の場合は有効なソリューションになる可能性があります。

  • privateを含む親レポ、coreおよびproject1サブproject2モジュールとして
  • publicサブモジュールとしてproject1を含む親リポジトリproject2

project1サブモジュールを ( のように)変更するたびprivateに、次のことを行う必要があります。

  • コミットし、それを上流のレポにプッシュします (親レポと同じprivate)、
  • 他の親レポ ( public/ project1)の同じサブモジュールに入る
  • gitプル

ささいなことではありませんが、これにより、各親リポジトリで使用される構成への正確な参照を保持できます (「構成」は、必要なサブモジュールの SHA1 の正確なリストです)

于 2012-12-13T06:52:07.723 に答える