1

マスターに動作するコードがあります。新しいアプリを新しいブランチとして作成する必要があります。これには、すでにマスターにあるものと同様の追加機能があります。また、マスターから新しいブランチへの変更をマージする必要もあります。

私は次のアプローチを試しました:

  1. 同様の機能があるにもかかわらず、新しいクラスを個別に作成します+gitマージマスターに問題はありません
    • 重複したコードがあります
  2. 共通機能の抽象クラスを作成し、そこから古いマスタークラスと新しいブランチクラスを継承します+重複したコードはありません
    • gitマージマスターには永続的な問題があります
  3. これは#2の変更です-抽象クラスをマスターブランチに移動します-上記の2つの問題を解決しますが
    • マスターに不要な(抽象化)コードがあります

では、どちらの方法が好ましいのでしょうか?または、正しい(別の)解決策はありますか?

更新:
#3を追加しました。

4

1 に答える 1

2

理想的な解決策は、サブモジュール内の抽象クラスを分離し、親リポジトリ (マスターと新しいアプリケーション ブランチを持つリポジトリ) でそのサブモジュールを使用することです。
つまり、サブモジュール (それ自体が別の git リポジトリ) が存在するサブディレクトリで共通クラスを探します。

そうすれば、あなたは別々に保ちます:

  • マスターとアプリのマージ
  • 共通クラスの進化 (独自の git リポジトリで行われ、メイン リポジトリにサブモジュールとしてインポートされます)
于 2012-06-27T11:37:54.167 に答える