1. ホーム
  2. git

Gitにおけるサブプロジェクトとサブモジュールの違い?

2023-08-12 02:25:46

質問

Gitにおいて、quot;submodule" (git submoduleコマンドで作成・管理するもの)とquot;subproject" (文字通り、あるGitリポジトリの中に別のGitリポジトリを入れるだけ)は違いますか、違うとしたらそれは何でしょう?

これに関して私が見つけることができたすべてのドキュメントは、かなり曖昧です (そしていくつかのケースでは、矛盾しています)。私の疑念は、違いはないということですが、私はそれを確認し、Git 初心者が見つけることができるように質問を残すべきだと考えています。

どのように解決するのですか?

A サブプロジェクト は、3 種類のネストのうちの 1 つを表す総称です。

  • サブモジュール は、スーパープロジェクトからサブプロジェクトへの半固定的な参照を提供し、git に統合されます。サブプロジェクトがある場合に使用するとよいでしょう。
    • が他の誰かによって開発されており、スーパープロジェクトの管理下になく、異なるリリースサイクルに従っている場合。
    • はスーパープロジェクト間で共有されるコードを含んでいます (特にバグフィックスや新機能を他のスーパープロジェクトに伝播させることが意図されている場合)。
    • 日常的な git コマンドのパフォーマンスを低下させるような、巨大かつ/または多くのファイルを分離します。
  • サブツリー は、スーパープロジェクトのリポジトリにインポートされるサブプロジェクトのリポジトリを、通常はスーパープロジェクトの特定のサブディレクトリにある、完全な履歴を持つリポジトリのネイティブな一部とするようにします。
  • ラッパー これは、関連するサブプロジェクトとスーパープロジェクトに複数のリポジトリ管理機能を提供するものです。

参考文献