Azure Repos 内のフォルダーとファイルをマージする

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

Visual Studio 2019 | Visual Studio 2022

分岐フォルダーとファイル」で説明されているさまざまな理由から、多くのソフトウェア開発チームは、Team Foundation バージョン管理 (TFVC) のさまざまな分岐にフォークされたコードベースで作業しています。 分岐を使用する場合、最終的に、プロジェクトの特定のフェーズ中にさまざまな分岐で完了した作業を統合する必要があります。 たとえば、完全なバージョンのソフトウェアをテストする準備が整った場合、さまざまな機能チームの分岐に加えられた変更をマージする必要があります。

この記事の手順では、Visual Studio グラフィカル ユーザー インターフェイスを使用して、さまざまな分岐で加えられた変更をマージする方法について説明します。 コマンド プロンプトでマージを実行する方法の詳細については、merge コマンドに関するページを参照してください。

前提条件

こちらの手順を実行するには、次のアクセス許可を設定する必要があります。

  • ソース ツリー内の項目の [読み取り] のアクセス許可と、ターゲット ツリー内の項目の [チェックアウト] のアクセス許可を [許可] に設定している必要があります。
  • ターゲット パスの [マージ] のアクセス許可が必要です。
  • ターゲット ツリー内の項目の名前を変更する場合は、ソース ツリーとターゲット ツリーの両方の [チェックアウト] のアクセス許可が [許可] に設定されている必要があります。
  • この操作に影響を受けるファイルがロックされている場合、[ロック] のアクセス許可を [許可] に設定する必要があります。

アクセス許可の詳細については、「既定の TFVC アクセス許可」を参照してください。

[ソース管理] ウィンドウからマージを開始する

分岐とフォルダーは異なるものです。 たとえば、次の図は、Visual Studio のソース管理エクスプローラーで、分岐とフォルダーが異なるアイコンでどのように表示されるかを示しています。

分岐アイコンとフォルダー アイコンを示すスクリーンショット。

フォルダーの分岐およびマージは使用できますが、ベスト プラクティスとしては、分岐のみを分岐およびマージすることをお勧めします。 詳細については、「分岐フォルダーとファイル」を参照してください。

ソース管理エクスプローラーから分岐、ファイル、フォルダーをマージする

  1. Visual Studio のソース管理エクスプローラーで、マージする分岐、フォルダー、またはファイルを右クリックし、[分岐とマージ]>[マージ] を選択します。

    ファイルを選択し、[ファイル]>[ソース管理]>[分岐とマージ]>[マージ] の順に選択することもできます。

  2. ソース管理マージ ウィザードで、マージを完了します

[変更セットのトラッキング] ウィンドウからマージを開始する

[変更セットのトラッキング] ウィンドウを使用すると、変更セットが作成された場所、マージされる場所、これらのイベントが発生した時間などの情報を確認できます。 また、変更セットをマージしなかった分岐は強調表示されます。 必要な変更セットが見つからない分岐がある場合、それをドラッグして含めることができます。

重要

この手順は、分岐に影響を与える変更セットに対してのみ実行できます。 詳細については、「分岐フォルダーとファイル」を参照してください。

[変更セットのトラッキング] ウィンドウへの変更セットのドラッグ アンド ドロップ

  1. ソース管理エクスプローラーで、分岐内に含まれる分岐、フォルダー、またはファイルを選択します。

  2. 選択した項目を右クリックし、[履歴の表示] を選択します。

  3. [履歴] ウィンドウで、表示する変更セットを右クリックし、[変更セットのトラッキング] を選択します。

    [分岐の選択] ダイアログ ボックスが表示されます。 [ターゲット分岐] リストで、必要に応じて、表示する分岐をオンにし、非表示にする分岐をオフにします。

  4. [可視化] を選択します。

  5. [変更セットのトラッキング] ウィンドウで、マージする変更セットを含む分岐をターゲット分岐にドラッグします。

  6. ソース管理マージ ウィザードで、マージを完了します

例: 新しいメソッドをマージする

上の手順の使用方法について理解できるように、次の例を使用して説明します。 チームメイトは、feature2-branchB コードで使用する feature2-branchA コードの一部に新しいメソッドを実装するよう求めています。 あなたは新しいメソッドのコードを記述し、feature2-branchA 分岐にチェックインします。 新しいメソッドをチェックインしたことをチームメイトに知らせます。

チームメイトは最新のソースを検索しましたが、チェックインした新しいメソッドは表示されません。 チームメイトはソース管理エクスプローラーを開き、feature2-branchA 分岐の [履歴] ウィンドウを表示して、あなたが変更セット 66 で新しいメソッドをチェックインしたことを確認します。 チームメイトは変更セット 66 を右クリックし、[変更セットのトラッキング] をクリックします。そうすると、次のウィンドウが表示されます。

分岐をチェックインしてマージする [変更セットのトラッキング] ウィンドウを示すスクリーンショット。

[変更セットのトラッキング] ウィンドウで、チームメイトはあなたが変更セット 66 でメソッドをチェックインし、変更セット 67feature2 分岐にマージしたことを確認します。 ただし、変更セット 67 が feature2-branchB 分岐にマージされるまで、チームメイトは新しいコードを取得できません。 そのため、チームメイトは feature2 分岐を feature2-branchB 分岐にドラッグしてソース管理マージ ウィザードを起動し、これを使用してマージを実行します。

ソース管理マージ ウィザードを使用したマージの実行

前の手順のいずれかを実行すると、ソース管理マージ ウィザードが表示されます。 このウィザードを使用して、マージのソースとターゲットを指定できます。 1 つの分岐全体を別の分岐にマージすることや、マージする特定の変更セットまたは変更セットのグループを選択することができます。

ソース管理マージ ウィザードを使用してファイル、フォルダー、または分岐をマージするには、次のようにします。

  1. ソース管理マージ ウィザードの [ソース分岐] ボックスに、チーム プロジェクトのソース分岐の名前を入力するか、[参照] を選択して一覧から分岐を選択します。

  2. [ターゲット分岐] ドロップダウン リストで、ソース分岐とマージするプロジェクトのターゲット分岐を選択します。

  3. [特定のバージョンまでのすべての変更] または [選択された変更セット] のいずれかを選択して、ターゲット分岐にマージする変更の範囲を選択し、[次へ] を選択します。

    ヒント

    可能であれば、[特定のバージョンまでのすべての変更] を選択します。 この方法では、将来のマージでの競合のリスクが軽減されます。

  4. [特定のバージョンまでのすべての変更] を選択すると、[ソース項目のバージョンの選択] ページが表示されます。 使用する項目のバージョンを選択します。

    • 変更セット: 変更セットのバージョンを指定することによりマージします。
    • 日付: 日付のバージョンを指定することによりマージします。
    • ラベル: ラベルのバージョンを指定することによりマージします。
    • 最新バージョン: 最新のバージョンを指定することによりマージします。
    • ワークスペース バージョン: ワークスペースのバージョンを指定ことによりマージします。

    または、[選択された変更セット] を選択した場合は、[ターゲット ブランチにマージする変更セットの選択] ページが表示されます。 マージする変更セットを選択します。

    ヒント

    複数の項目を選択するには、Ctrl または Shift キーを押しながら項目を選択します。

  5. [次へ] を選択し、[マージ操作の実行] ページで [完了] を選択します。

    1 つまたは複数の保留中の変更が生成されます。

  6. 必要に応じて、チーム エクスプローラー[保留中の変更] ページを使用して、保留中の変更をすぐにチェックインします。 [表示]>[その他のウィンドウ]>[保留中の変更] を使用して、ページを開くことができます。 詳細については、「チームのコードベースへの作業のチェックイン」を参照してください。

次のステップ