web-dev-qa-db-ja.com

まだPRリクエストが保留されている2つのブランチを処理する必要がある場合の最良のアプローチは何ですか?

branch-1(分岐したマスター(メジャーアップデート))とbranch-2(分岐したマスター(マイナーアップデート))があるとします。

たとえば、別のブランチを作成する必要があるときに行う最善のアプローチは何ですか? branch-3そして、PRがまだ保留されている間に両方のブランチから作業を続ける必要がありますか?

そして、両方のPRが承認されたらどうしますか?

4
catandmouse

警告:あなたの当面の質問に対して本当に良い答えはありません。本当の問題は、リスクと潜在的なやり直しを引き起こしている組織/チームのボトルネックがあることです。

チームの知識を活用する:組織でこれに対処するためのローカル戦略はありますか?他のどの枝が2番目に作成され、著者はこの問題にどのように対処しましたか?

  • まず、優れたPRを確認して、変更点を理解します。
  • オープンPRが計画された変更と競合する可能性があるかどうかを評価できますか?
    • たとえば、メジャーアップデートブランチから開始するリスクがあるかどうかを検討します。
  • 作業を開始する必要がある場合は、コミットとコミットメッセージが構造化されていることを確認してください。これは、あなたがやろうとしていることかもしれないので、チェリーピッキングをできるだけ簡単にするためです。
  • PRの順序付けについて、承認者/レビューアにPRに明確な指示を与えます。

最後に、しかし最も重要なことは、あなたのチームに話しかけてください-他の人々がリポジトリにPRし、承認者にこれが問題であることを知らせることです。優れたプロジェクトマネージャーがいる場合は、リソースを解放して遅延/やり直しを軽減できます。

6
Jamie

使い捨てブランチから作業する必要があります。 2つのブランチをマージするだけです。この使い捨てブランチでいくつかのコミットを続けます。両方のPRがマスターである場合、マスターからの新しいブランチでコミットを選択します。

2

以下を使用して新しいブランチを作成します。

git checkout -b branch-3 branch-1
git merge branch-2

これにより、保留中の両方のブランチからの変更を含むブランチが作成されます。それ以降は、2つのことが起こります。

  1. PRのマージを含むmasterからの変更を取得する必要があります。 git merge masterからbranch-3これらの変更を取得します。

  2. 保留中のPRの一方または両方に変更を加えるように求められます。その場合は、PRのブランチに変更を加えてから、git merge branch-1からbranch-3これらの変更を取得します。

他のはるかに可能性の低いシナリオがあります(リポジトリを制御する人々から変更を行うように依頼されたと仮定した場合)。一方のPRが完全に拒否され、もう一方はmasterに受け入れられます。そのような場合は、おそらくgit rebase --onto master branch-2、そして大きな混乱に対処します。

0
Karl Bielefeldt