1

フォルダーを非公開にする必要があるプロジェクトがありdataます (ただし、VCS によって追跡されます)。したがって、gitGitHub のリポジトリ全体は非公開です。ただし、コードは多くの人にとって非常に便利なので、公開したいと思います。

現在、私のレポには と しかありませmasterdev。の機能devが動作すると、それらは にマージされmasterます。no_dataブランチを作成し、それをパブリック GitHub リポジトリにプッシュしたいと考えています。masterプライベート リポジトリの追跡を継続する必要があります。私はすでにこれのためのプライベート GitHub リポジトリを持っています (それを と呼びましょうprivate_project)。ブランチに呼び出されるパブリック リポジトリを作成できますprojectno_data

質問:
a) 各ブランチが個別のリポジトリを追跡するように設定するにはどうすればよいですか?

b) 2 つのブランチの違いは、パブリック ブランチがフォルダーを無視することだけなので、それをファイルdata/に追加する予定です。.gitignoreただし、残りのコードは両方のブランチで同じままにしておきたいと思います。masterそのため、 にマージするたびno_dataに手動で.gitignoreマージを解決する必要があるのではないかと心配しています。

4

1 に答える 1

1

しないでください。これにより、日または別の日にエラーが発生することになります。

ディレクトリを、親リポジトリ(アップストリームリポジトリを持つ)で宣言された、独自のリモートアップストリームリポジトリ(' ' 1)をdata持つサブモジュールにします。private_projectpublic_project

そうすれば、親リポジトリの任意のブランチを「public_project」にプッシュできます。問題はありません。
'public_project'のクローンを作成するときに他の寄稿者が取得するのは、完全なリポジトリと、アクセスできない別のリポジトリ(' private_project')への参照だけです(プライベートリポジトリであるため)。
gitサブモジュールはどの程度正確に機能しますか?」を参照してください。

于 2012-12-11T02:31:03.337 に答える