JetBrains Space ヘルプ

Git サブツリー

Git サブツリーを使用すると、ある Git リポジトリの内容をサブディレクトリとして別のリポジトリに含めることができます。

  • 別のリポジトリを別個のエンティティとして保持しながら、別のリポジトリのコンテンツと履歴を自分のリポジトリに組み込むことができます。これは、外部コードベースへの変更、更新のプル、変更のプッシュをすべてメインリポジトリ内から行うことができることを意味します。

  • Git サブツリーを使用すると、複数のリポジトリを 1 つのリポジトリに結合できるため、依存関係の管理、外部コードベースの組み込み、プロジェクト間でのコードの共有が容易になります。これは、複数のソースからのコードを効果的に管理しながら、クリーンで整理されたリポジトリ構造を維持できます。

subtreeDiagram.png

Git サブツリーの空間実装

  • Space を使用すると、あるリポジトリ内の特定のディレクトリと別のリポジトリ内の対応するディレクトリの間でシームレスな双方向同期が可能になります。フォルダーは、サブフォルダーであっても、リポジトリ全体を含むルートディレクトリであっても、任意のレベルで同期できます。

  • Space は、Git コマンドを実行せずにサブツリーを迅速にセットアップできるシンプルなフォームを提供します。

  • Git サブツリー機能の Space サポートは、同じプロジェクト内のリポジトリに限定されます。Space リポジトリを Space の外部でホストされている外部リポジトリにリンクする必要がある場合は、まず外部リポジトリの Space ミラーを作成し、次にサブツリーを使用してそのミラーをメインリポジトリにリンクします。続きを読む

Git サブツリーが必要なのはなぜですか ?

一般的な使用例の内訳は次のとおりです。

  • 依存関係の管理

    プロジェクトが、別のチームによって開発され、別の Git リポジトリでホストされている特定のライブラリまたはフレームワークに依存している場合は、Git サブツリーを使用して、そのリポジトリのコードをプロジェクトに直接組み込むことができます。これにより、必要なコードベースをプロジェクトのコードと一緒に保持できるため、依存関係の管理プロセスが簡素化され、バージョンの互換性が確保され、プロジェクト全体の配布やデプロイが容易になります。

  • コードを共有する

    同じ Space プロジェクト内の複数のリポジトリ間で共有できるコードベースがある場合は、Git サブツリーを使用して、それを各リポジトリのサブディレクトリとして含めることができます。こうすることで、共有コードを 1 か所で変更または改善し、その変更をそれを使用するすべてのリポジトリに簡単に反映できます。

  • コラボレーションとアウトソーシング

    プロジェクトの一部を Space 社外のサードパーティチームに委託したいとします。または、プロジェクトの残りの部分を非公開のままにして、そのコードをオープンソースにして、すべての外部コントリビューターがすぐに利用できるようにします。これは、Git サブツリーと Space ミラーリング機能を組み合わせることによって実現できます。

Git サブツリーをセットアップする

  1. プロジェクトに移動し、Git サブツリーを使用して別のリポジトリにリンクするリポジトリを開きます。

  2. リポジトリページで、「設定」をクリックします。

    chooseRepositoryAdministration.png
  3. リポジトリ設定ページで、「ミラー」タブに移動し、「サブツリーの追加」をクリックします。

    mirroringAddSubtree.png
  4. 次のように構成フォームに入力します。

    • ブランチと、別の (ターゲット) リポジトリと同期するリポジトリ内のサブディレクトリを選択します。

    • 同期するリポジトリ (ターゲットリポジトリ) を選択します。

    • ターゲットリポジトリ内のブランチを選択し、オプションで同期する必要があるディレクトリを選択します。ターゲットリポジトリ全体を同期するには、ターゲットパスフィールドを空白のままにします。

    addSubtreeForm.png
  5. 追加をクリックします。

外部リポジトリでの Git サブツリーの使用

Space の外部でホストされているオープンソースライブラリを Space リポジトリにサブディレクトリとして含めたい場合、または Space リポジトリの一部を外部プロジェクトに抽出したい場合、Space は Git をサポートしていないため、直接行うことはできません。外部リポジトリとのサブツリーの同期。次に進むべき方法は次のとおりです。

  1. Space ミラーリングを使用して、リンクする外部リポジトリの同期コピーを作成します。メインの Space リポジトリが配置されているのと同じプロジェクトに Space ミラーを作成してください。

  2. Git サブツリーのセットアップをメインリポジトリに追加し、そのサブディレクトリを新しく作成した Space ミラーリポジトリにリンクします。

外部リポジトリはミラーと同期され、ミラーはサブディレクトリとしてメインリポジトリに組み込まれます。

subtreeExternalDiagram.png

関連ページ:

プロジェクトに参加する

あるプロジェクトに貢献を開始したい場合は、そのプロジェクトに参加する必要があります。つまり、そのプロジェクトのメンバーになる必要があります。貢献しようとしているプロジェクトに移動します。すでにメンバーである場合は、プロジェクトのページのプロジェクトメンバーにリストされます。そうでない場合は、プロジェクト管理者に連絡してメンバーシップを依頼してください。プロジェクト管理者を確認するには、プロジェクトページでメンバーウィジェットをクリックします。プロジェクトを探す:すべてのプロジェクトは名前で見つ

リポジトリをミラーリングする

Space のリポジトリミラーリングを使用すると、Space の外部でホストされているリポジトリの同期コピーを作成および維持できます。ミラーリングされたリポジトリは両方向で同期されます。コミットを Space ミラーにプッシュすると、リモートリポジトリに配信され、その逆も同様です。次の場合にミラーリングを設定できます。Space からリモートでホストされているリポジトリにアクセスして、そのコードベースを参照し、コードレビューを作成したいと考えています。リポジトリを既存のホスティングから Spac...

コードの所有者

コード所有者は、コードベースの特定の部分を担当するメンバーです。コード所有者は、という名前の特別なファイルに定義され、表示されます。責任リストを使用すると、プロジェクトのさまざまな部分の担当者を広範囲に把握できますが、CODEOWNERS ファイルを使用すると、リポジトリ内の特定のパスまたはファイルについて質問がある場合の連絡先を見つけることができます。さらに、CODEOWNERS ファイルを使用すると、品質ゲートとしてコード所有者の承認が必要な保護されたブランチへのマージリクエストを効率化する...