4

開発中の Web サイトに関連するすべてのものに Git リポジトリを使用しています。リポジトリには、ドキュメント、モックアップ、元の階層化された画像など、サイトに関連するすべてのファイルと、wwwサブディレクトリに配置した Web ルートのものがあります。

私は、使用することを選択した CMS をプロジェクトの残りの部分と統合することを開始したいところです。CMS はオープン ソース プロジェクトであり、Git でも管理されています (重要な場合は GitHub でホストされています)。明らかに、CMS はwwwサブディレクトリにある必要がありますが、それだけではありません。CSS ファイル、画像、CMS 用のテンプレートなどがあります。このため、私が選択したのはサブツリー マージ戦略を使用して、外部プロジェクトをリポジトリに追加します。ある時点で元のプロジェクトを変更し、変更を元に戻す場合があるため、GitHub から CMS リポジトリを複製し、クローンからサブツリーのマージを行いました。

問題は、外部プロジェクト (つまり、CMS 用) に、インクルードしたいサブモジュールがあることです。サブモジュールがメイン プロジェクトに統合されていることを確認する最善の方法は何ですか? サブモジュールごとにサブツリーのマージを行う必要がありますか?

サブモジュールを変更したいとは思わないでしょうが、変更したい箇所が 1 つか 2 つある可能性はあります。

4

2 に答える 2

5

サブツリーのマージを行う(そして、パッチをアップストリームに送信できるように、その後の分割を再度行う)簡単な方法は、実験的なgitサブツリーツールを試すことです。

于 2009-08-20T17:56:14.910 に答える
1

Gitサブモジュールには、別のプロジェクトの特定のチェックアウトが含まれており、自動的に最新の状態に保たれることはありません。したがって、CMSのサブモジュールを処理する最も簡単な方法は、それらがリモートブランチとして提供されたリポジトリを追跡することです。そうすれば、サブモジュールが由来するプロジェクトへの変更について常に情報を得ることができます。

サブツリーマージを使用すると、変更をCMSプロジェクトに送信するのがより複雑になります(おそらく気難しいのが正しい言葉です)。多くの変更を送り返すことを期待している場合は、おそらくスクリプト化できます。

于 2009-03-14T17:01:42.287 に答える