2

複数のクライアントに展開する必要がある iOS のアプリがあります。各クライアントには、アプリにいくつかの小さな変更があります (画像、プロビジョニング ファイル、アプリ名など)。アプリの 95% はすべてのクライアントで同じです。

複数の git リポジトリ (クライアントごとに 1 つ) を維持したくありません。私は、顧客ごとにブランチを用意して、一度はしたいと思っています。

私はこの分岐に慣れていないので、これが達成できるかどうかを知る必要があります。

  1. 一般的な images/configs/etc で master ブランチを作成する予定です。
  2. クライアントごとにブランチを作成する
  3. 各ブランチを顧客の images/configs/etc で更新します

それから私が変更を加えるとき、私はそれをマスターにします。次に、変更をマスターから各ブランチにプルします。マスターからプルするときに、イメージ、構成などが上書きされないようにするにはどうすればよいですか。ブランチごとにこれを行うときに無視できる特定のファイルを定義できますか?

私がしなければならないことを管理するためのより良い方法はありますか?

4

1 に答える 1

2

ブランチをプルmasterしてから、その上にリベースする必要があります。

具体的な例については、「Git: 多くのブランチ (同じベース コミットを使用) を一度にリベースする方法は? 」 を参照してください。

セキュリティを強化するために、ファイルに関連付けられたマージ ドライバ " " を追加し、各ブランチに存在keepMineするファイルでそのマージ ドライバを宣言できます。 「特定のファイルで競合するマージに対して常にローカル バージョンを選択するように git に指示するにはどうすればよいですか?」を参照してください。.gitattributes

これにより、クライアント ブランチの SHA1 が変更され、それらをクライアント リポジトリに強制的にプッシュする必要がありますが、クライアント側でファイルを積極的に変更していないため、問題にはなりません。

于 2012-11-14T06:21:21.983 に答える