3

数日間 Web を調べましたが、問題の解決策が見つかりません。多分私はここでもっと運がいいです。

これは私が直面している問題です。私はいくつかの古いコードベース (たとえば 30) を持っており、何年にもわたって、コピー アンド パストと各コードベースへのカスタム コードの追加によって成長してきました。記録のために、それらのいずれも現在、いかなる種類のソース管理によっても管理されていません。

ここで、GIT を使用してすべてのソースを制御したいと考えています。私が達成したい主な目標は、すべての異なるコード ソースから新しいマスター リポジトリを作成し、パーツが新しいマスター リポジトリに入った場合に、そこから 1 つの場所で維持できるようにすることです。

ここに私が持っているアイデアのいくつかを示します。間違っている場合は修正してください。

  1. 私が持っている最高のコードベースの新しいレポを作成し、この新しいレポ内の各コードベースのブランチを作成します。このようにして、最終的に各コードベースの優れた部分をマスターにマージできます。やがて、マスターは最高の部分をすべて集め、最高のコードをそれぞれのコードベースに戻すことができます。すべての新しいバグ修正はマスターで修正され、他のすべてによってプルされます。

  2. 新しいマスター リポジトリを作成し、パッチを適用してさまざまなコードベースからすべての要素を収集します。しかし、コードを適切な方法で保守し、バグ修正を 1 か所で行うにはどうすればよいでしょうか? 個別のコードベースごとにパッチを適用する必要がありますか? または、リモコンを変更して、プル/プッシュバックしますか?

  3. 新しいマスター リポジトリを作成し、チェリー ピッキングを使用して、さまざまなコードベースからすべての部分を収集します。しかし、コードを適切な方法で保守し、バグ修正を 1 か所で行うにはどうすればよいでしょうか? cherry-pickそれぞれの個別のコードベースに戻す必要がありますか? または、リモコンを変更して、プル/プッシュバックしますか?

この問題に直面する人が増えると確信しているので、誰かが情報、ヒント、または何でも共有する必要がある場合.

ありがとう。

4

3 に答える 3

1

通常の方法は、コードベースごとにリポジトリを作成することです。無関係なコードを 1 つの大きなリポジトリに入れると、ソース管理のメリットが薄れます。

あなたのコメントに続いて、あなたが見るべきはgitサブモジュールだと思います。他のリポジトリと共有できる単一のリポジトリを提供します。また、1 つのプロジェクトの共通コードに変更を加えた場合、これをマスター リポジトリにプッシュして、変更を使用したい場合に他のリポジトリが利用できるようにすることができます。

于 2013-07-03T07:59:21.703 に答える
1

各コードベースを個別のリポジトリに配置してから、他のすべてを含むことができる「スーパー リポジトリ」として機能するリポジトリをもう 1 つ作成します。すべての個々のリポジトリをサブモジュールとしてスーパー リポジトリに追加します。これにより、個別の履歴を保持しながら、それらすべてを 1 つの場所で追跡することができます。

サブモジュールの詳細については、こちらをご覧ください。

于 2013-07-03T13:04:58.730 に答える