web-dev-qa-db-ja.com

開発ブランチのメインへのマージ:マージする変更はありませんでした

私のメインブランチには、開発ブランチの同じファイルとは異なるコードを持つファイルがいくつかあります。開発ブランチは、これらのファイルの正しいバージョンを持っているブランチですが、メインブランチ(ターゲット)にマージしようとしています。メッセージが表示されます

マージする変更はありませんでした

メインブランチにそれらのファイルの正しいバージョンがあるように、どうすればその問題を解決できますか?

16
aidonsnous

ファイルをマージするとき、TFSは2つのブランチの違いを確認するだけでなく、前回のマージ試行でこれらの変更を無視したかどうかも追跡します。 TFSをマージすると、競合がある場合に3つのオプションが提供されます。

  1. マージ
  2. ソースを保持
  3. ターゲットを維持する

あなたが選ぶとき Keep target または、特定の変更を手動でマージして選択を解除すると、TFSはこれらの変更を「解決済み」としてマークし、将来マージしようとしたときに再度提供しません。これは「マージクレジット」と呼ばれます。

tf merge /discardを使用するときにコマンドラインを使用してこれらの問題を作成することもできます。これにより、マージを検討するときにこれらのファイル/変更セットの変更を無視するようにTFSに指示されます。

TFSにこれらの変更を再検討させるには2つの方法があります。

  1. 強制マージを使用。コマンドラインで、TFSがそのレコードを一時的に無視し、マージするためのすべての異なるファイルを提供するマージを開始できます。これは大変な作業になる可能性がありますが、完了するとマージ履歴が元の状態に戻ります。強制マージを発行するにはtf merge $/Source/Folder/File $/Target/Folder/File /forceこれにより、ほぼ確実にマージの競合が発生し、ターゲットブランチで適切な変更を取得するために解決できます。

  2. ロールバックを使用して前のマージを元に戻します。最近、チェンジセットが破棄されたマージを実行した場合。履歴でそれを見つけ、チェンジセットを右クリックして選択します Rollback 取り消されたコードをチェックインします。これにより、実際にはそのチェンジセット内のすべての変更が削除され、「マージクレジット」がリセットされます。これが完了したら、マージをやり直して、今度は正しく実行できます。これは、コマンドラインからtf rollbackを使用して実行することもできます。

14
jessehouwing