ブランチモデルは、生産コードを表すmaster
ブランチと、将来のリリースを表すrelease-x.x
ブランチがあるところでほぼ整っています。Git分岐モデル:いくつかの質問
しかし、我々は効果的に解決する方法がわからないいくつかのシナリオがあります:
ライブバグフィックスが新しいfeature
がrelease-2.0
で分岐している現在のリリース
のためには関係ありませんモジュールAの完全な書き換えを行います。
release-2.0
で新しいfeature
が完成し、マージされます。現在のライブモジュールAのバグが見つかりました。
master
に修正されました。我々は(今は無関係であるバグ修正コードを破棄)競合をバグ修正を持参し、修正するためにmaster
にrelease-2.0
をリベース:我々は考え出しこの時点で
release-2.0
をmaster
にマージします。リリースに関連するバグフィックスのみを
release-2.0
に選択し、リリース準備が完了したら、release-2.0
の履歴ですべてのmaster
の履歴を上書きします。
ソリューション#1軍たちは、私たちが必要とされていない知っているが、溶液#2は、全体master
枝を拭くと、すべてのリリースでrelease-2.0
ブランチの歴史でそれを置き換えるために私たちを強制的にコミットとの競合をマージ解決します。これにより、チェリーピックを忘れてしまったバグ修正が失われる可能性があります(release-2.0
)。また、リリース前にmaster
に分岐していた進行中のバグ修正を破る可能性があります。
機能は、我々は新しいfeature
を作成やっぱ
- リリースにそれをしない、
release-2.0
にリベースと--no-ff
でrelease-2.0
にそれをマージします。 - いくつかのバグが見つかりましたので、
feature
に修正し、上記のマージプロセスをやり直してください。 - クライアントは機能をもう一度見直して、多くのことを変更したいと決めます。機能には価値がありませんが、
release-2.0
の変更はできず、release-3.0
まで待たなければなりません。
このシナリオを処理する適切な方法は何ですか? release-2.0
で行われた機能に関連するすべてのコミットを、「機能Xを元に戻して3.0に戻す」というメッセージを戻し、その後feature
をrelease-3.0
にマージする必要がありますか?
主に意見の問題であるどちらも、そうです。問題の焦点を絞り、技術的な問題として言い換えることは可能ですか? – larsks
@plalxあなたはあなたの質問を解決する答えを得ましたか?はいの場合は、回答としてマークすることができます。同様の質問をした人には、それは恩恵を受けるでしょう。 –