1

タイトルは、名前がわからないので、おそらく少し誤解を招く可能性があります。

クライアントに販売する Web ベースのシステムを作成しました。私たちはすべてのホスティングを行います。システムを購入した新しい顧客がいる場合、別の顧客からシステムをコピーして、ロゴなどを変更します。

変更を加えた場合、バグを見つけて修正したとしましょう。すべてのシステムを調べて、バグのあるファイルを変更する必要があります。そして、これは私が変更しようとしているものです。

基本的に私が探しているのは、これを整理し、本番環境に簡単にプッシュできる簡単な方法です。しかし、クライアントが特定の機能を必要とする場合、この機能ですべてのシステムを更新するのではなく、簡単に変更できる柔軟性も必要です.

そのため、システムのコアに変更を加えるたびに、手動で行うのではなく、何らかの方法で固定ファイルを他のすべてのシステムにプッシュしたいと考えていますが、これは面倒で愚かな方法です。

これは、メイン ブランチにマージされるある種のブランチ コンストラクトを介して、git で可能であると考えましたが、これについてはあまり確信が持てず、それについて何も見つけることができません。

これが何と呼ばれているか知っている人はいますか、これを行う方法はありますか?

4

2 に答える 2

1

これは、Git だけでなく、どのバージョン管理システムでも可能です。

コア システムが master ブランチにあるとします。顧客ごとに新しいブランチを作成します。

コア システムでバグを発見した場合は、master で修正し、master をすべての顧客ブランチにマージします。

それまでの間、お客様のブランチに独自の変更を加えることができます。ただし、たとえばindex.php、カスタマー ブランチで変更を行い、後で master のそのファイルのバグを修正した場合、master をカスタマー ブランチにマージすると競合が発生する可能性があり、手動で解決する必要があります。

また、各顧客ブランチは独自のカスタム変更を持つ顧客に固有であるため、顧客ブランチからマスターにマージする必要はありません。常に master ブランチから customer ブランチにマージしますが、その逆はありません。

コア システムにマイナーな変更とバグ修正のみを加える場合、このセットアップは問題なく動作するはずですが、マイナーな競合が発生することもあります。しかし、コア システムに大規模な変更を加えると、非常に多くの競合が発生し、セットアップの維持が困難になる可能性があります。それはすべて、顧客ブランチとマスター ブランチでの固有の変更の重複に依存します。オーバーラップがほとんどまたはまったくない場合は、大規模な変更であっても簡単にマージできます。

于 2013-08-10T06:28:53.883 に答える
0

ポスト コミットフックを調べることをお勧めします。リスト (おそらく python 辞書) を作成し、どのブランチがどの顧客エリアにあるのか、またコミットがあるたびに、それが 1 人の顧客に固有のものである場合はプルすることができます。ディレクトリを更新しますが、トランクにある場合は、すべての顧客ディレクトリで自動的にプルして更新できます。

フックに関する git book の章はこちらで、いくつかの例があります。

于 2013-08-10T09:23:45.807 に答える