2

すべての製品リリースを 1 つのブランチにまとめたいと考えています。そのため、RC の準備ができたら、そのブランチを開発ブランチで最新のものにし、RC ビルドを実行して、そのバージョンをリリースできるまでホットフィックスを適用します。これが起こっている間、私たちのチームの残りのメンバーは開発ブランチで作業を続けます。

秘訣は、dev ブランチからの変更をこの release ブランチにマージしたくないということです。dev ブランチの正確なコピーにしたいので、リリースで発生した以前の hotfix/etc の作業を本質的に無視します。いずれにせよ、それらは dev ブランチに取り込まれたであろうブランチです。この理由の 1 つは、マージがうまくいかない多くのバイナリ ファイルを扱っていることです。

最後の詳細は、古いバージョンをホットフィックスする必要がある場合に備えて、リリース ブランチに古いコミットとタグを残しておきたいということです (そのためにブランチします)。

これに一致する解決策が見つからない場合は、リリースごとにブランチを作成するという別の方法がありますが、それは面倒に思えました。

4

2 に答える 2

0

私は少し前にこのスクリプトを開発して、あなたが説明していることをほぼ正確に実行しました。これを使用するには、リリースブランチをチェックアウトしてから、マージする開発ブランチの名前を指定してこのスクリプトを実行します。これらの2つのブランチのマージを記録する新しいコミットが作成されますが、ツリーは、引数として名前が指定されたブランチとまったく同じになります。

私は実際にこれを実際の展開に使用することにはならなかったので、実際の世界ではテストされておらず、開発状況でのみテストされています。

于 2012-11-20T15:49:46.280 に答える
0

1つの解決策は、prodブランチを次のRCコミットにリセットすることです。
しかし、それは前述の製品ブランチの歴史を失うでしょう。

もう1つの解決策は、merge --theirs次のとおりです。すべてのオプションが「あるブランチを別のブランチのようにするためのgitコマンド」にリストされています。
qqxスクリプトは、この回答で言及されているコミットツリーを使用します。

于 2012-11-20T15:50:33.630 に答える