2016-01-13 56 views
6

私はWebプロジェクトでgitリポジトリを持っています。私はさまざまな顧客のためにこのWebプロジェクトをカスタマイズしたいと思っています。Git - 複数のバージョンを維持する

たとえば、私は2人の顧客c1とc2を持っています。だから私は2つのgitブランチを作成する:c1とc2。

すべてのバージョンは同じ基本システムを持ちますが、機能は異なります。新しい機能を追加したり、あるブランチにバグを修正したい場合は問題ありません。しかし、もし私が両方の支店に関係するものを変更したいのであればどうでしょうか?これにより、大量のマージ競合が発生します。

誰かが私の問題に対してより良い解決策を示すことができますか?

+3

アプリケーション間で大きな部分が共有されている場合は、[Git submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules)を使用して同じだ。 – Powerlord

+5

バージョン管理!=設定、顧客ごとのブランチを作成するのは滑りやすい斜面です。私はあなたに何が共通し、顧客固有のものを定義し、それぞれの顧客に独自のレポを持たせることを強くお勧めします。サブモジュールを使用するための@Powerlordの勧告はそれを助けることができます – Lars

+0

PowerlordとLarsが助けてくれてありがとう! – user3241334

答えて

1

私はこのような問題を解決するためのGitHub機能Forkが好きで、主なアイデアは、別のリポジトリとコピーPull Requestを使用してコミットするか、他の方法では、このようなアプローチで両方のリポジトリは、共通基盤を持つことになり、その後、別のリポジトリとして進化するを持つことです。

は、あなただけのいくつかのgitリポジトリを作成することができ、その後、追加の remoteを追加し、代わりに Pull Requestのあなただけの別のリポジトリからコピーの cherry-pickをコミットを使用することができ、 GitHubを使用する必要はありません同じアプローチを使用します。このアプローチは、より良い方法で競合を解決するのに役立ちません。

また、あなたが独立したモジュールとして共通部品の開発のためのモジュラー方法を考える必要があり、これはsubmodulesとしたり、個別のモジュールを開発し、その後からそれを使用することができますJavaに例えばあなたのプログラミング言語に関連するいくつかの他の方法で行うことができますMaven,GradleまたはIvyの依存関係管理機能を使用する他のプロジェクト

+0

ありがとうございます。私は今、各顧客ごとに異なるリポジトリを使用しています。 – user3241334

関連する問題