他のプロジェクトを含むように Git プロジェクトを設定するにはどうすればよいですか?
例えば。私はオンライン マッピング アプリに取り組んでいます。SFの衣装と一緒にGPSツールを開発しました。同時に、別の関心事 (ジオマッピングのみを気にする) と共に Python Geomapping スクリプトを開発しました。私たち自身のコア ファイルは 2 つを結合し、必要なアプリのためにそれらの上に構築します。
各プロジェクトは単独で存在する必要があります。GPS に関心のある人は GPS にのみ関心があります。ただし、他のすべてのプロジェクトを含む「親」プロジェクトは、プロジェクトとしてアクセスできる必要があります。
サブモジュールを理解するために時間を費やしましたが、必要なものに対して独立性が高すぎるようです。
また、可能であれば、それらの各プロジェクトに 1 つまたは 2 つの重複するスクリプトを含めることができればよいでしょう。1 つの Git プロジェクトに、その「ルート」の一部ではないファイルを含めて、このファイルがいずれかのチームによって更新されたときに両方のチームが利益を得られるようにすることはできますか?
これは Git で実行できますか? マーキュリアルで?ホスト (GitHub、Gitorious) は重要ですか?
「親」に Subversion を使用する考えがあります - .git フォルダーを無視し、プロジェクトに Git を使用します (.svn フォルダーを無視します) - しかし、それは最後の手段にすぎません。
編集:
サブモジュールが不要な理由を説明するには:
- ユーザーがダウンロードすると、zip にはサブモジュールが含まれません (こことここ)。共同作業者でさえプロジェクトをセットアップしようとする場合も同様です。これはショーストッパーです。
- サブモジュールは凍結されています - それらは (簡単に) 指摘されているプロジェクトの最新バージョンを取得しません。
- 以下の素晴らしい回答とNoPugsでのこのモノローグで指摘されている他の理由。
サブツリーのマージ (下記の Paul によって紹介されました) はうまくいきません: [サブツリーの] ソースをマージ先のプロジェクト内から更新することは困難であり、そのソースはプロジェクトの「ルート」フォルダーの外に存在する必要があります。プロジェクト。Web アプリであるため、すべてのページがその中のフォルダーに内部的にリンクされ、テストと更新がそのフォルダー内で直接行われることが重要です。(これが明確で他の人にとって役立つことを願っています。)
「リモートブランチ」の設定についてはまだ勉強中ですが、他のアイデアはまだ歓迎されています。