質問

私はちょうど周りにGitが管理し、私のプロジェクトの未完成の機能のトピックブランチを作成しました。彼らはすべての非常に自己完結したように、その1つのトピックブランチは直接、別のトピックブランチに関連していないです。すべての枝、しかし、いくつかの共通の基盤を持って、システムの中核であるマスターブランチは、トピックブランチはちょうどマスターブランチに機能を拡張します。

私は(メートル)に影響を与えるmasterブランチに何かをする場合、私は、正しく理解している場合任意のトピックブランチ(たとえば、コアと個々の機能の間の通信に使用されるAPIの変更)、その変更はに反映されません。自動的にトピックブランチ、枝がそれに応じて固定することができるように。変更は手動でマージまたは他の枝に桜を摘みする必要があります。

私は、サブモジュールを使用すると、これを達成するであろうことを理解しています。サブモジュールは機能が自立ではない主な理由は、あまりにも多くの主要なプロジェクト間の分離と-だろう機能のプロジェクトに、しかし、リードしています。彼らはコアに依存しています。

だから、何私が探していることは、特定のファイル/ディレクトリが特定のブランチに一意であることを言うことは方法のいくつかの種類である

、他のすべては、メインブランチから来ています。より良いアナロジーを欠く、Photoshopの用語で言えば、私はのマスターのバックグラウンド層であるためには、各トピックブランチは、いくつかのユニークな内容とその上に部分的に透明画像層、なりたいです。

役に立ちましたか?

解決

問題で説明したように、「組成物」または「構成の継承」の概念は、Gitの中でサポートされていないこと「は、静的分岐の対柔軟な"。あなたが欲しいファイルの正確なセットを「構成」することができますマージのみ。

サブモジュールの機能を使用すると、独自のライフサイクルを持っている必要がありますし、独自のペースでタグ付けされたファイルの一貫したセットを識別するのに役立ちます。それはあなたの特徴のケースではありません。

あなたのアプローチが残るべき「システムベースの」1、あなたは、開発したタグ、すべてのシステムをマージします。何かがmasterブランチに進化している場合、それは機能ブランチにマージする必要があります。
特徴はどれがmasterブランチに変更されたファイルの異なるセットを必要とする場合は、そのマージは簡単になります。ない場合は、中間体を使用して、 mateuszaの提案を辿ることができます手つかずの機能ブランチを維持しながら、競合を解決して、このようなマージの結果を評価するために、分岐ます。

他のヒント

あなたが分岐マスターと枝の束を持っているとしましょう:特長1、特徴2、特長3 ...

$ git checkout feature1
$ git branch master-with-feature1
$ git checkout master-with-feature1
$ git merge master

は、のマスターのを変更したり、の特長1 のあなたは、のマスターと-特長1 のにチェックアウトし、それらをマージすることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top