次の方法で共有


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

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

Visual Studio 2019 |Visual Studio 2022

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

この記事の手順では、Visual Studio グラフィカル ユーザー インターフェイスを使用して、異なるブランチで行われた変更をマージする方法について説明します。 コマンド プロンプトでマージを実行する方法については、「Merge コマンド」を参照してください。

前提 条件

これらの手順を実行するには、次のアクセス許可を設定します。

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

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

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

ブランチとフォルダーは異なります。 たとえば、次の図は、Visual Studio ソース管理エクスプローラーので、ブランチとフォルダーが異なるアイコンで表示される方法を示しています。

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

フォルダー間で分岐とマージは引き続き実行できますが、チームが従うベスト プラクティスは、ブランチ間でのみブランチとマージを行う方法です。 詳細については、「Branch フォルダーとファイルの」を参照してください。

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

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

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

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

[変更セットの追跡] ウィンドウからマージを実行する

変更セットの追跡 ウィンドウを使用すると、変更セットが作成された場所、マージされた場所、これらのイベントが発生した日時などの情報を表示できます。 変更セットがマージされていないブランチも強調表示されます。 変更セットが必要だが不足しているブランチが表示された場合は、それをドラッグできます。

重要

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

変更セットを [変更セットの追跡] ウィンドウにドラッグ アンド ドロップする

  1. ソース管理エクスプローラーで、ブランチ、フォルダー、またはブランチ内に含まれるファイルのいずれかを選択します。

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

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

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

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

  5. 追跡変更セット ウィンドウで、マージする変更セットを含むブランチをターゲット ブランチにドラッグします。

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

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

前の手順を使用する方法を示すために、次の例を考えてみましょう。 チームメイトから、feature2-branchB コードで使用している feature2-branchA コードの一部に、新しいメソッドを実装するように求められたとします。 これを受け、新しいメソッドのコードを記述し、feature2-branchA ブランチにチェックインします。 新しいメソッドをチェックインしたことをチームメイトに知らせます。

チームメイトは最新のソースを見つけますが、チェックインした新しいメソッドは表示されません。 彼らは ソース管理エクスプローラーを開き、feature2-branchA ブランチの [履歴] ウィンドウを表示し、変更セット 66を使って、新しいメソッドをチェックインしたことを確認します。 チームメイトが 66 変更セットを右クリックして [変更セットの追跡]を選択すると、次のウィンドウが表示されます。

ブランチをチェックインおよびマージする際に使用する「変更セットの追跡」ウィンドウを示すスクリーンショット。

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

ソース管理のマージ ウィザードを使用してマージを完了する

上記のいずれかの手順を完了すると、ソース管理のマージ ウィザード が表示されます。 このウィザードを使用すると、マージのソースとターゲットを指定できます。 1 つのブランチ全体を別のブランチにマージすることも、マージする特定の変更セットまたは変更セットのグループを選択することもできます。

ソース管理のマージ ウィザードを使用して、ファイル、フォルダー、またはブランチをマージします。

  1. ソース管理マージ ウィザードの ソース ブランチで、プロジェクト ソース ブランチの名前を入力するか、参照 を選択して一覧から選択します。

  2. ターゲット ブランチ ドロップダウン リストで、ソース ブランチをマージするターゲット プロジェクト ブランチを選択します。

  3. 対象のブランチにマージしたい変更の範囲を選択します。具体的には、特定のバージョンまでのすべての変更 を選択するか、選択された変更セット を選択します。次に、[次へ] を選択します。

    ヒント

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

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

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

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

    ヒント

    Ctrl または Shift キーを押したまま、複数の項目を選択できます。

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

    保留中の変更が 1 つ以上生成されます。

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

次の手順