web-dev-qa-db-ja.com

VSTSのプルリクエストのマージ競合を解決するにはどうすればよいですか?

私はこれになったプルリクエストを作成しました:

enter image description here

「承認」ボタンは何もせず、完了は無効になります。

プルリクエストでこの問題を解決するにはどうすればよいですか?

35
Liero

更新

Microsoftは、ブラウザベースのマージを追加しました。これにより、小さな衝突のピクルスから抜け出すことができます。

Sprint 150時点でのさまざまなシナリオの視覚化の改善

より複雑な状況の場合:

競合を解決するには、ターゲットブランチからの変更を逆統合する(追加のマージコミットを作成する)か、ターゲットブランチをリベースする(履歴をきれいできれいにする)ための2つのオプションがあります。


PRを完了する前に、ターゲットから現在のブランチにマージします。

リポジトリをローカルでクローンし、ターゲットブランチからブランチへのマージを実行し、それらの変更をリポジトリにプッシュする必要があります。 VSTSは変更を検出し、プル要求を更新します。

            -------o3              PR
           /
---------o1-o2                     target

したがって、target (o2)PRにマージします。

            -------o3-o4           PR
           /          /
---------o1----------o2            target

その後、PRを完了します

            -------o3-o4           PR
           /          / \
---------o1----------o2--o5        target

PRブランチをリベースして、ターゲットの最新の変更を含める

または、リポジトリをローカルに複製し、ターゲットブランチの最新バージョンでPRブランチをリベースし、リベースのすべての問題を解決して、変更をPRブランチに強制的にプッシュします。 VSTSは変更を検出し、プル要求を更新します。

            -------o3              PR
           /
---------o1-o2                     target

したがって、o3o2にリベースします。

              -------o3            PR
             /
---------o1-o2                     target

次にPRを完了します(以下の場合は早送りマージを使用):

---------o1-o2-o3                  target
37
jessehouwing
  1. Visual Studioでプロジェクトを開きます。
  2. 開く表示> チームエクスプローラー
  3. ブランチタブに変更します。
  4. マージするブランチ(例:dev)をダブルクリックします。
  5. 右クリック>マージ元>選択
    ブランチからのマージ:master
    現在のブランチへ:dev
  6. マージボタンをクリックします
  7. 競合ファイルを選択してください
  8. 次に、競合を解決します。含めるセクションの左または右のチェックボックスをクリックできます。
  9. 次に、マージをコミットします
  10. できた.
15
sky91

@jessiehouwingで上記の手法を実行するか、新しいプラグインを使用できます。 MicrosoftDevLabsは、競合を解決するためのプラグインへのリンクをリリースしました。プラグインへのリンクを以下に示します https://marketplace.visualstudio.com/items?itemName=ms-devlabs.conflicts-tab

4
BipinR