web-dev-qa-db-ja.com

Azure DevOps-プルリクエストGit「次の手順:これらの競合を手動で解決し、新しい変更をソースブランチにプッシュします。」

Devという名前のブランチを作成しました。

開発者コードをマスターに送信するプルリクエストを実行しましたが、このプルリクエストを実行すると、次のように表示されます。 enter image description here

50以上の競合により、「次の手順:これらの競合を手動で解決し、新しい変更をソースブランチにプッシュする」自動マージが妨げられます。

ここからどこに行きますか?すべてのdevブランチでmasterにあるものを置き換えたいだけです。これらの競合を解決するオプションはありません。

25
CBBSpike

PCで次のことを行う必要があります

ブランチdev

$ git pull Origin master-これによりマージコミットが作成され、devとmasterの両方で変更されたファイルの競合を解決する必要があります。 git statusは、変更が競合するファイルのリストを表示します。

競合を解決した後、すべての変更をコミットし、ブランチを強制的にプッシュします。その後、PRを完了することができます。

詳細はヘルプリンク

35
Harshil Lodhi

devブランチのファイルバージョンを保持する必要があるため(ターゲットブランチmasterのファイルを変更する間、ソースブランチを保持します)、競合ファイルを解決するにはmasterブランチを変更する必要があります。 、およびmasterブランチに変更をプッシュする権限があることを確認してください。

以下のオプションを使用できます。

オプション1:直接マージ

ローカルリポジトリでは、以下のコマンドを実行してdevブランチをmasterブランチにマージしながら、devブランチとして競合ファイルバージョンを保持できます。

git checkout master
git merge dev -X theirs
git Push Origin master

また、作成した既存のプルリクエストでは、ブランチがマージされたことが表示されます。したがって、プルリクエストを放棄できます。

オプション2:プルリクエストによるマージ(マスターブランチでの競合の解決)

以下のコマンドを使用して、masterブランチの競合を解決できます。

# In yout local repo
git checkout master
git checkout dev -- .
git commit -m 'replace master branch version by dev for the conflict files'
git Push Origin master 

一方、新しいコミットがターゲットブランチ(マスター)にプッシュされた場合、既存のプルリクエストの変更は更新されません。また、同様のレポートを見つけることができます PRからのコミットが別のブランチを介してターゲットにマージされると、プル要求の差分は更新されません

つまり、Webページのプルリクエストにはまだ競合が表示されます。 devをmasterブランチにマージするには、既存のプルリクエストを破棄して再アクティブ化(または新しいリクエストを作成)する必要があります。

5
Marina Liu

私はrebaseをしなければなりませんでした。すべてのコミットを確認し、変更を適用する必要がありました-それらは非常に広範囲で、名前空間やメソッド名などの名前を変更しました。これにより、Azure DevOpsポータルで引き続きPull Requestを実行できました。実際、既存のPull Requestの変更を更新するだけで、自動マージの競合は解決されました。

コードをマージしても問題は解決せず、rebaseのみが機能しました。

0
Scott Koland