私はちょうどgitの製品のV1.0.0をリリースしました。私は今から推奨されるアドバイスが何であるか疑問に思っています。gitの最初のメジャーリリース
私はv1.0.0ブランチを作成するのですか、またはv1.0.0の注釈付きタグですか、より良い選択肢ですか?
タグは私にとって正しいアプローチだと思われますが、私はタグからの分岐とマージのワークフローが不安です。
私はちょうどgitの製品のV1.0.0をリリースしました。私は今から推奨されるアドバイスが何であるか疑問に思っています。gitの最初のメジャーリリース
私はv1.0.0ブランチを作成するのですか、またはv1.0.0の注釈付きタグですか、より良い選択肢ですか?
タグは私にとって正しいアプローチだと思われますが、私はタグからの分岐とマージのワークフローが不安です。
を使用します。
支店は仕事のためにある、タグがリリースのためのものです。
あなたのメインライン支店(通常はマスター)は、次のリリースのための継続的なフォワード開発である必要があります。リリースが行われるたびに、イベントをマークするタグ(最小限注釈)を使用します。
次のバージョンの作業中に、リリースされたバージョンのメンテナンスリリースを行う必要がある場合は、タグをチェックアウトし、そのポイントからブランチを作成できます。
git checkout -b <tag>-maintenance <tag>
これにより、メンテナンス作業のための新しい支店が作成されます。メンテナンスリリースの作業が終了したら、メンテナンスブランチのリリースにタグを付けることによって、メンテナンスブランチで同じプロセスを実行します。
リリース(マスター)ブランチに他のフォワード開発がない場合は、そのブランチにメンテナンス作業を追加して、もう一度タグを付けて移動することができます。
バグや潜在的なバグを修正するために、現在のタグからブランチを作成することをお勧めしますか?バグや新機能を修正し、新しいタグを作成してマスターにアップストリームをマージしますか? – dagda1
これは、2.1をリリースし、2.2で作業しています。2.2の変更は有効です。しかし、あなたは2.1でいくつかのバグを発見しましたが、修正する必要があるいくつかのバグを見つけました。2.2は2.1.1をリリースしたいと思います。 2.1.1、マージ、タグ、リリースの変更。 –
依存しますが、次のバージョンでも作業している間にv.1.0.0をすぐに修正したいと思います。
すぐにブランチを作成します。あなたがそれを必要としないことはほとんどありません(v1.0.1を作成する必要がない場合のみ)。
もちろん、タグを付けて(傷つくことはありません)、後でそのタグに基づいてブランチを作成することもできます。単純にタグからブランチを作成することができます
git checkout -b 1.0.0 v1.0.0
注釈付きタグがおそらく最初に行うべきことです。
そこから、ワークフローにはいくつかの選択肢があります。ここには最も一般的な2つのオプションがあります。
「前方互換」の開発スタイルに移行することができます。ここでは、1.0シリーズはこれ以上サポートされません(1)。 1.0シリーズでは "サポートのみ"を、2.0シリーズには新機能がすべて追加されます(あるいは、1.0.1と1.1の代わりに、2.0は完全な書き換えのために残されます - バージョン番号はそれほど重要ではありません) 。
シナリオ2は確かに「プロフェッショナル」な選択肢ですが、スコープが狭い小規模なプロジェクトの場合は、シナリオ1は大丈夫です。
シナリオ1では、すべての作業をマスターブランチで実行するか、フィーチャーブランチを実行して準備ができたらマスターにマージします。新しいリリースをお持ちの場合は、1.1または1.0.1などのタグを付けてください。
シナリオ2では、最新のリリース、サポートリリースを反映する「サポート」ブランチ、ステージングする「ステージング」ブランチ、最終的にマスタにマージされる新しい機能をテストするために、新機能の開発やバグ修正にフィーチャーブランチを使用することができます。また、バグ修正を導入すると、サポートブランチをマージしてマスターに戻します。新しいバージョンまたはサポートバージョンのいずれかをリリースするときは、注釈付きのタグをもう一度使用してください。
個人的には、私は通常、バージョン管理されたリリースごとにブランチを持つのではなく、タグ付きのマスターステージングサポートブランチに賛成です。しかし、それはgitの素晴らしいことです - あなたはそれを行うことができますが、フィット感がある!もちろん、私が提示した2つの選択肢は、開発ワークフローのための唯一のオプションではありません。
私はレポを1.0.0でタグ付けし、1.0.0のサポートブランチを作成するのは、シナリオ2に対して何を言っているかです。別のブランチを作成するのではなく、サポートブランチとしてタグを使用できると思いました。 – dagda1
@ dagda1:タグは、コミット時に「余分なメモ」と似ていると考えることができます。特定のものに対応するコミット(この場合、ソフトウェアのバージョン1.0.0をビルドするために使用されたコミット)を正確に知りたいときは、タグを使用します。一方、ブランチはコミットする名前付きポインタにすぎず、コミットを増やすと移動できます。タグは*開発後に重要です*開発中のブランチは重要です*。 –
@ daga1:いいえ、 "v1.0.0"タグからのブランチは、1.0.0ではないという理由だけで "1.0.0"と呼ばれることはありません(これはタグのみです)。これは "1.0.x"につながるブランチであるため、 "サポート"、 "maint"(enance)、 "prev"と呼ばれることがあります。また、1つ以上のリリースをサポートする予定の場合は、 "maint- 1.0 "が適切です –
gitでいつでもブランチを作成することができます。私は、次の操作を行います:
タグを作成する前にリリースを行うと、すでにボートを見逃してしまっています。注釈付きタグの作成は、リリースする前に行う必要があります。実際、多くの定義では、注釈付きタグ*の作成は*リリースです。 –
リリースが完了した場所を知っている限り、タグ付けしても関係ありません。 – Makis