2017-04-20 24 views
0

モノリシックアプリケーションをマイクロサービスベースのアーキテクチャに分割する予定ですが、GITの履歴を保持したいと考えています。モノリシックアプリケーションをマイクロサービスベースのアーキテクチャにチューニングし、GITの履歴を維持する

モノリットは、3つのマイクロサービスに分割する必要があります。

私の最初のアプローチは、GITリポジトリを3回コピーし、git履歴のほとんどの部分を生かしておく新しいマイクロサービスからドメイン以外の部分をすべて削除することです。しかし、これがバージョン管理の履歴を保持する最善の方法であるならば、私は恥ずかしがりません。

+0

計画のように聞こえます... –

答えて

1

--subdirectory-filterオプションを使用してgit filter-branchオプションを使用すると、リポジトリのサブディレクトリをフィルタリングし、リポジトリにルートディレクトリとしてサブフォルダを含めることができます。これは手順5に記載されています。here、ドキュメントhereも役立ちます。リポジトリを3回クローンして、プロジェクトの別の部分についてはそれぞれfilter-branchを実行する必要があります。

このように(上記--subdirectory-filterで)サブディレクトリのみを扱うことができるので、リポジトリを再配置する必要があります。しかし、他の部分の単純な削除に対する利点は、filter-branchを使用すると、リポジトリの実際の内容に関係する履歴のみを保持し、その部分の履歴は除外されないことです。

+0

マイクロサービスは別々のプロジェクトにする必要があります –

+0

私は次のように書いています: 'リポジトリを3回複製し、それぞれのプロジェクトのフィルタブランチを実行する必要があります。 =>結果:3つの異なるリポジトリ、各マイクロサービスごとに1つ。 – kowsky

関連する問題