私のサーバーでの最新のコミットが次のようになっていると仮定します。
A1 -> A2 -> A3
ローカル リポジトリはサーバーと同期されており、現在は A3 から分岐しています。
A3
|
B1 -> B2 -> B3
ようやくコミット B3 のタスクが終了し、サーバーにプッシュしてマージ (PR) したいのですが、サーバーで他の誰かが新しいコミットを追加しました:
A1 -> A2 -> A3 -> A4 -> A5
A4 と A5 を確認すると、B3 での作業と競合がないことがわかったので、A5 から直接分岐したかのように作業をマージしたいと思います。これは非常に一般的なタスクのように見えますが、正しい方法は何ですか?
答え1
プル リクエストをどのように行うのか、私にはわかりません。各ブランチで A1-A5 と B1-B3 がすべてリモートにプッシュされている場合、ブランチ A または B に移動してgit pull remote origin BRANCH A/B
名前を付けるだけです。B で作業していたので、git pull remote origin BRANCH A
ブランチ B で実行するだけです。これにより、同じブランチに A1-A5 と B1-B3 が配置されます。次に、ブランチ B を使用して、マスターへの PR を作成します。
あるいは (私の意見では正しい方法ですが)、A をマスターするための PR と、B をマスターするための PR を作成します。すでに B にある A の重複は、問題を引き起こすことはありません。
A と B がまったく関連していなかった場合は、develop ブランチまたは同等のブランチから B を分岐させる必要があります。
これは例です非線形分岐戦略より複雑なワークフロー向け。
これを見て線形ワークフローと非線形ワークフロー起こっている混乱をよりよく視覚化するのに役立つかもしれません。
私の説明とシナリオの理解が間違っている場合はお知らせください。回答を変更したり、完全に削除したりします。