次の方法で共有


[マージ] コマンド (Team Foundation バージョンコントロール)

Azure DevOps Services の |Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 |Visual Studio 2022

tf merge コマンドは、Team Foundation Version Control (TFVC) でブランチ間で変更を適用します。

手記

このコマンドの結果は、チェックイン操作を実行するまで Azure DevOps サーバーには反映されません。 詳細については、「コードの開発と保留中の変更の管理」を参照してください。

前提 条件

コマンドを使用するには、を含むワークスペース フォルダーの を許可する チェックアウト アクセス許可を設定し、を含むワークスペース フォルダーの 許可 アクセス許可を [読み取り] に設定します。 詳細については、「既定の TFVC アクセス許可 」を参照してください。

構文

tf merge [/recursive] [/force] [/candidate] [/discard] 
[/version:versionspec] [/lock:none|checkin|checkout] [/preview] 
[/baseless] [/nosummary] [/noimplicitbaseless] [/conservative] [/format:(brief|detailed)] [/noprompt] [/login:username,[password]] source destination

パラメーター

引数

引数の

説明

<versionspec>

/version オプションの C2 などの値を提供します。 TFVC がバージョン仕様を解析してスコープ内にある項目を決定する方法の詳細については、「Team Foundation バージョン管理コマンドを使用する」を参照してください。

<source>

マージのソースとして機能するファイルまたはフォルダーを指定します。

<destination>

マージ先として機能するファイルまたはフォルダーを指定します。

<username>

/login オプションに値を提供します。 DOMAIN\username または usernameとして username 値を指定できます。

オプション

オプションの

説明

/recursive

現在のディレクトリおよびサブフォルダー内の source 項目の指定と一致します。

/force

マージ履歴を無視し、指定した変更の一部またはすべてが以前にマージされた場合でも、ソースからコピー先にマージします。

/candidate

変換先にまだマージされていないソース内のすべての変更セットの一覧を出力します。 一覧には、マージされていない変更セット ID と、その変更セットに関するその他の基本情報が含まれている必要があります。 特定の結果のアスタリスクは、部分的にマージされたことを示します。つまり、変更セットの変更の一部がマージされ、その他の変更がマージされていないことを意味します。

/discard

マージ操作は行いませんが、マージ履歴を更新して、マージが発生したことを追跡します。 これにより、変更セットが特定のマージに使用されなくなります。

/version

選択的マージの場合、このオプションは、マージ先にマージする必要がある範囲を指定します。 キャッチアップ マージの場合、このパラメーターは、マージされていないすべての変更をマージする前のバージョンを指定します。

選択的マージの場合、バージョン範囲はマージする一連の変更の始点と終点を示します。 たとえば、バージョン 4~6をマージしようとすると、変更セット 4、5、および 6 がマージされます。

/lock

ロックの種類を指定するか、項目からロックを削除します。 詳細については、「ロックの種類を理解する」を参照してください。

ロック オプション:

  • None: アイテムにロックを設定せず、アイテムから既存のロックを削除します。

  • Checkin: 他のユーザーは指定されたアイテムをチェックアウトできますが、チェックインを実行してロックを解除するまで、ロックされたファイルのリビジョンをチェックインすることはできません。 他のユーザーが指定された項目のいずれかをロックした場合、ロック操作は失敗します。

  • Checkout: ロックを明示的に解除するまで、ユーザーが指定された項目のいずれかをチェックインまたはチェックアウトできないようにします。 他のユーザーが、指定された項目のいずれかをロックしている場合、またはいずれかの項目に対して保留中の変更が存在する場合、ロック操作は失敗します。

/preview

マージのプレビューを表示します。

/baseless

基本バージョンを使用せずにマージを実行します。 つまり、ユーザーは、マージリレーションシップを持たないファイルとフォルダーをマージできます。 ベースレスマージの後、マージリレーションシップが存在し、将来のマージはベースレスである必要はありません。

手記

ベースレスマージでは、ターゲット内のファイルを削除できません。 このような変更は、手動で引き継ぎすることができます。

/noimplicitbaseless

関連付けられていない 2 つのバージョンコントロール ツリー内の同じ相対名を持つ 2 つの項目間で、TFVC が暗黙的なベースレス マージを実行しないことを指定します。

/nosummary

競合、エラー、および警告の概要を省略します。

/noprompt

ユーザーからの入力を求めるメッセージが表示されないようにします。

/conservative

あるブランチを別のブランチにマージすると、より多くの競合が発生します。

/format

マージ競合を要約する形式を指定します。

  • Brief (既定): 競合、警告、およびエラーの合計数のみを集計します。
  • Detailed: 競合、警告、エラーの合計数だけでなく、各競合に関する詳細も一覧表示されます。

手記

このオプションは、出力に競合の概要が含まれている場合にのみ適用されます。 /nosummary オプションを使用した場合、またはマージで発生した競合、警告、エラーが 10 個未満の場合は、概要を表示できません。

/login

Azure DevOps でユーザーを認証するためのユーザー名とパスワードを指定します。

備考

tf コマンド ライン ユーティリティの merge コマンドを使用して、既存のソース ブランチの変更を既存のターゲット ブランチに適用できます。 個々のリビジョンまたは完全な変更セットをターゲット ブランチにマージできます。 ソースからターゲット ブランチへの変更、または移行先からソース ブランチへの変更をマージできます。

merge コマンドを使用すると、ターゲット ブランチに移行されていないソース ブランチの変更を照会することもできます。 また、このコマンドを使用すると、特定の変更がソースからコピー先にマージされることはなくなり、マージ操作の候補として表示されなくなります。

tf コマンドライン ユーティリティの使用方法の詳細については、「Team Foundation バージョン管理コマンドを使用する」を参照してください。

ベースレスマージ

ベースレスマージを使用して、互いに直接分岐していないアイテムをマージします。 ベースレスマージを実行するには、tf merge コマンドを使用する必要があります。 ベースレスマージを実行すると、TFVC にはブランチ内のファイルの関係に関する情報がありません。 ベースレスマージでは、手動で競合を解決する必要があります。 ベースレス マージを実行し、競合を解決すると、TFVC はマージ履歴を記録し、フォルダーとファイル間の関係を確立します。

tf mergeを実行すると、TFVC は、以前に関連する 2 つのバージョン管理ツリーで同じ相対名を持つ項目間で暗黙的なベースレス マージを実行します。 たとえば、関連する分岐を $SRC して $TGTをマージできます。 どちらのブランチにも、a.txtという名前の関連のないファイルが含まれています。 tf mergeを実行すると、2 つのファイルが同じで、FIPS 準拠の暗号化が無効になり、ソース ファイルがターゲット内の他のファイルに関連していない場合、TFVC は 2 つの a.txt ファイル間の関係を確立します。

/noimplicitbaseless オプションを設定して tf merge を実行した場合、TFVC が 2 つのブランチをマージしようとすると、変更をチェックインしようとしたときに、2 つの a.txt ファイルによって名前空間の競合が発生します。 競合を解決するには、いずれかのファイルの名前を変更する必要があります。

次の例では、MyFile_RTMにマージされていない MyFile_beta1 からの変更をマージします。

c:\projects>tf merge MyFile_beta1 MyFile_RTM /recursive

次の例では、changeset 137 を branch2にマージします。

c:\projects>tf merge /version:C137~C137 branch1 branch2 /recursive

次の例では、changeset 137 までのすべての変更セットを branch2にマージします。

c:\projects>tf merge /version:C137 branch1 branch2 /recursive

次の例では、branch2にマージされていない branch1 の変更セットの一覧を出力します。

c:\projects>tf merge /candidate branch1 branch2 /recursive

次の例では、branch1にマージされていない branch2 の変更セットの一覧を出力します。

c:\projects>tf merge /candidate branch2 branch1 /recursive

次の例では、変更セット 137 を、branch2へのマージの候補として破棄します。

c:\projects>tf merge /discard /version:C137~C137 branch1 branch2 /recursive

次の例では、changeset 137 までの変更セットをすべて、branch2にマージする候補として破棄します。

c:\projects>tf merge /discard /version:C137 branch1 branch2 /recursive