web-dev-qa-db-ja.com

Gitflowはリリース後にマスターの後ろにブランチを開発します

(TFSを介して)gitブランチのワークフローにGitflowを使用しています。リリースが成功すると、次のことを行います

  1. リリースからマスターへのプルリクエスト
  2. 開発からリリースへのプルリクエスト

ステップ1はコミットを作成します(マージされたPR XXX:マスターへのリリースのマージ)

ステップ2はコミットを作成します(マージされたPR YYY:リリースをマージして開発)

私たちのブランチを見ると、開発はマスターの背後にある1つのコミットであると書かれています。これは、コミット(マージされたPR:XXX)が開発中でないためです。

(プルリクエストに変更がない場合でも)マスターから別のプルリクエストを作成して開発する正しい手順はありますか?

これは標準では見られません Gitflowモデル

9
openshac

これはフィクションの長さになるので、ごめんなさい。私が提出している短い答えは、gitフローのリリースが完了すると、developがどのようにmasterのコミットaheadになるかということです。 git flow origniator Vincent Driessen は、独自の git-flowスクリプト を実装しました。

何... git-flowscripts

git-flowでの経験についてはわかりませんので、明白なことを言っている場合はご容赦ください。 git-flow仕様には、使用を簡単にするためのスクリプトのセットがあります。 Gitフロースクリプトは、Git for Windowsに付属して出荷され、TFS参照に基づいて使用していると想定しています。

最近の「v2.1.0」リリースの結果

Git Bash経由で最近のリリースの履歴を確認しましょう

$ git log --oneline --graph --decorate

どの年

Result of git flow release finish

上の画像で気づくでしょう

  1. ファイルのアップロード機能が開発に統合されました。この時点で、製品をリリースしたいと思いました。
  2. リリースするために、$ git flow release start v2.1.0を発行しました。
  3. 「git flow release start ...」コマンドは自動的にブランチrelease/v2.1.0を作成しました。このブランチには、1つのコミット(バージョン番号の増加)のみが含まれています。
  4. この時点で私はテストし、リリースに満足しているので、$ git flow release finish -kを使用して終了します
  5. 「git flow release finish」コマンドはの順序で
    • ブランチrelease/v2.1.0をブランチmasterにマージします
    • リリースv2.1.0の注釈付きタグを作成する
    • ブランチmasterdevelopにマージして、リリースブランチのすべてのコミットが次のリリースの開発に戻るようにします。

しかし、TFS PRを使用している場合はどうなりますか?

ワークフローでTFS PRを使用している場合、リリースPRを完了する準備ができているときに、おそらくこのようなものが表示されます。

enter image description here

私のショップでもPRを使用していますが、$ git flow release finish -kを使用してローカルでマージし、masterブランチとdevelopブランチをプッシュします。 TFSはリリースブランチが既にマージされていることを認識し、以下に示すようにPRを「完了する」のではなく「閉じる」オプションを提供します。

enter image description here

3
Mike Atkisson

私はあなたが説明する追加のマージを行ったことはありません(またはそうしたチームに参加したことはありません)。 couldリリースをマージして開発する代わりに、開発者がマージして開発したいと思う-または、少なくとも、問題が発生することは考えられない...しかし、本当にdevelopが「遅れている」ことの何が問題になっていますか?基本的には、gitflow IMOの通常の状態です。

0

あなたのシナリオでは、開発ブランチにはマスターの背後に1つのコミットがあり、マスターのコミットが1つある必要があります(マージされたPR YYYのため)。マスターから別のプルリクエストを作成して開発する場合、開発ブランチには別の新しいコミット(マージされたPR ZZZ)があり、マスターに1つのコミットがあります(それでいいですか?)。

リリースから開発へのプルリクエストを作成する代わりに、マスターから開発へマージすることもできます。

0