2

個人的なプロジェクトの一環として、Subversion の代わりに git を使い始めました。そこから何か新しいことを学んでいるのかもしれません。

リポジトリのセットアップは非常に簡単で、git ファイルを提供するように Web サーバーを構成するのは魅力的でした。コミット、クローン作成、ここでは問題ありません。

ただし、リポジトリ内のプロジェクトのセットアップに問題があります。現在、次のようになっています。

project.git
\- mobileapp
\- artwork
\- backend
\- website

websiteすべてが機能したら、とmobileapp通信することになってbackendいます。

私の問題は展開です。backendサーバーに展開する場合、現在、リポジトリ全体をチェックアウトし、コンテンツをbackendwebroot ディレクトリにコピーする必要があります。

のコンテンツをチェックアウトする方法がないように思われるためproject.git/backend、4 つのサブプロジェクトを 4 つの git リポジトリに分割し、4 つのリポジトリを維持するオーバーヘッドを追加することを考えています。

私の問題を解決する簡単な方法はありますか?

4

2 に答える 2

3

部分的な Git リポジトリをチェックアウトする特に簡単な方法がないことは間違いありません。(1.7.0 の時点で、Git はスパース チェックアウトをサポートしていますが、ニーズに対応していない可能性があります。)

一般的な推奨事項は、論理的に分離された各モジュールを個別のリポジトリに配置することです。これらのモジュール間の関係を管理するのはやや困難です。

1 つのアプローチは、Git サブモジュールを使用することです。これにより、適切なバージョンの子リポジトリをチェックアウトする方法を Git に教える親 Git リポジトリ内にメタデータが追加されます。次に、そのメタデータをバンプする個々のコミットを作成して、関係を管理します。

もう 1 つは、Android のリポジトリツールのような外部ツールを使用することです。Repo は、複数の子リポジトリに関しても独自の状態を維持しますが、リビジョンに重点を置いているサブモジュールとは異なり、repoブランチに重点を置いています。

2 つのアプローチはどちらも実行可能であり、モジュール間の関係をどのように考えるかという哲学的な違いを示しています。もちろん、これは必ずしも問題を解決するための「より簡単な」方法ではありません。

于 2012-12-26T19:04:48.410 に答える
1

使用submodule

$ git submodule -h

例えば

$ git submodule add git@github.com:<username>/backend.git backend

backendその後、別のプロジェクトとして扱うこともできます。

于 2012-12-26T18:59:43.267 に答える