8

多くのソース ファイルを含む git リポジトリがあります。既存のリポジトリの一部のファイルが新しいリポジトリで参照される新しいリポジトリを作成したいと考えています。

例:

リポジトリ A には以下が含まれます。

  • ディレクトリ 1
    • ソースファイル 1
    • ソースファイル 2
  • ディレクトリ 2
    • ソースファイル 3
    • ソースファイル 4

リポジトリで、BI はリポジトリ A からソース ファイル 3 を参照したいと考えています。

  • ディレクトリ 3
    • ソースファイル 5
    • リポジトリ A のソース ファイル 3。

リポジトリ B は、リポジトリ A にアクセスできない開発者間で共有されます。

私の質問は次のとおりです。リポジトリ A にアクセスできる開発者が元のファイルを変更すると、変更がリポジトリ B によって検出されるように、あるリポジトリから別のリポジトリにいくつかのファイルを参照することは可能ですか? 可能であれば、どうすればよいですか?

4

2 に答える 2

2

Git は、ファイルをファイルのコレクションではなく、リポジトリ全体のコンテンツと見なします。したがって、これを行うのは非常に困難です。この機能が重要な場合は、ファイル中心の SCM システムに切り替えることをお勧めします。

ただし、可能ですが、かなり不器用です。

追跡するファイルを使用して、レポ B に孤立したブランチを作成します。サブツリー マージ アルゴリズムを使用して、このファイルをレポ B の他のブランチ (マスター ブランチなど) にマージします。

gitolite を使用して、リポジトリから 1 つのブランチへのアクセスを制限できます。これで、サブモジュールとして、またはリモートとして、サブツリーのマージを実行して、レポ B をレポ A に追加できます。(サブモジュールとサブツリーのマージの処理方法については、git-scm.com で詳しく読むことができます)。

ただし、gitolite を使用してレポ B 全体からの読み取りを拒否することはできません。書き込みアクセスのみです。読み取り防止も探している場合は、ファイルをリポジトリ C に配置する必要があります

于 2013-11-05T10:02:09.430 に答える