私はgit環境でホストされているプロジェクトを持っており、それに基づいてホワイトラベルプロジェクトを生成する必要があります。私は、MicrosoftのTFVC(Team Foundation Version Control)でもっと経験が豊富で、使い方を簡単に分かっていますが、gitを使ってどのように進めるべきかは不明です。ホワイトラベルプロジェクトで使用するGit戦略
TFVCでは、メインプロジェクトからブランチ 'A'を作成し、顧客固有のコンテンツを消去して完了しました。私はジェネリックバージョンを持っています。その後、私は子育てを削除し、 'A'から新しいブランチ 'B'を作成し、メインプロジェクトから 'B'にマージしてベースラインを実行するので、必要な階層が作成され、新しく作成されたブランチにはすべての顧客特定の変更。新しい顧客が到着すると、私は一般的な 'A'からブランチ 'C'を作成し、必要な新しい変更を適用します。
新しい機能がすべてのクライアントにとって十分に一般的で有用な場合、それは 'A'で開発され、 'B'、 'C'などにマージされます。これはすべてクライアントは異なる機能を要求し、単一のリポジトリを使用してそれらをオンとオフに切り替えることが許可されます。私の意見では、共通のものから生まれた異なるサンプルのコードを維持するよりはるかに悪いです。同じ機能は、異なるクライアントでも異なる動作をすることができます。実行時にアプリケーションでチェックする必要はありません。
シナリオを説明したら、Gitを使ってどのようにすればいいですか?また、gitを使ってブランチの代わりにフォークを使うこともできますか?
gitのブランチはライフサイクルが非常に短いため、生産環境では使用しないでください。これは、複数の顧客の場合にTFVCを使用する場合には当てはまりません。ブランチを無期限に使用することは悪い習慣と考えられますか? – v1n1akabozo
あなたの決定にのみ依存します。一時的なブランチを作成して削除することもできますが、永続的にブランチを作成することもできます。早送りとしてのみ更新するのか、強制的に更新するのかを決定することもできます。前者の場合、不可逆的なので、そこに押しつぶすことについていくつかの規律を守らなければなりません。たとえば、間違って顧客固有のコンテンツをあなたの 'A 'にプッシュすると、あなたはそれを元に戻すか、前のポイントにリセットしてから、顧客のブランチにマージされます。 – max630
これらのブランチは、[ここ](https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches)で説明されているように、プライマリサーバのブランチを意味するものとします。そのサーバーでは直接操作するのではなく、ローカルのトラッキングブランチを使用して開発とマージを行いますが、おそらく同じ名前になりますが、その違いを理解することが重要です。 – max630