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 のソース管理エクスプローラーで、分岐とフォルダーが異なるアイコンでどのように表示されるかを示しています。
フォルダーの分岐およびマージは使用できますが、ベスト プラクティスとしては、分岐のみを分岐およびマージすることをお勧めします。 詳細については、「分岐フォルダーとファイル」を参照してください。
ソース管理エクスプローラーから分岐、ファイル、フォルダーをマージする
Visual Studio のソース管理エクスプローラーで、マージする分岐、フォルダー、またはファイルを右クリックし、[分岐とマージ]>[マージ] を選択します。
ファイルを選択し、[ファイル]>[ソース管理]>[分岐とマージ]>[マージ] の順に選択することもできます。
ソース管理マージ ウィザードで、マージを完了します。
[変更セットのトラッキング] ウィンドウからマージを開始する
[変更セットのトラッキング] ウィンドウを使用すると、変更セットが作成された場所、マージされる場所、これらのイベントが発生した時間などの情報を確認できます。 また、変更セットをマージしなかった分岐は強調表示されます。 必要な変更セットが見つからない分岐がある場合、それをドラッグして含めることができます。
重要
この手順は、分岐に影響を与える変更セットに対してのみ実行できます。 詳細については、「分岐フォルダーとファイル」を参照してください。
[変更セットのトラッキング] ウィンドウへの変更セットのドラッグ アンド ドロップ
ソース管理エクスプローラーで、分岐内に含まれる分岐、フォルダー、またはファイルを選択します。
選択した項目を右クリックし、[履歴の表示] を選択します。
[履歴] ウィンドウで、表示する変更セットを右クリックし、[変更セットのトラッキング] を選択します。
[分岐の選択] ダイアログ ボックスが表示されます。 [ターゲット分岐] リストで、必要に応じて、表示する分岐をオンにし、非表示にする分岐をオフにします。
[可視化] を選択します。
[変更セットのトラッキング] ウィンドウで、マージする変更セットを含む分岐をターゲット分岐にドラッグします。
ソース管理マージ ウィザードで、マージを完了します。
例: 新しいメソッドをマージする
上の手順の使用方法について理解できるように、次の例を使用して説明します。 チームメイトは、feature2-branchB コードで使用する feature2-branchA コードの一部に新しいメソッドを実装するよう求めています。 あなたは新しいメソッドのコードを記述し、feature2-branchA 分岐にチェックインします。 新しいメソッドをチェックインしたことをチームメイトに知らせます。
チームメイトは最新のソースを検索しましたが、チェックインした新しいメソッドは表示されません。 チームメイトはソース管理エクスプローラーを開き、feature2-branchA 分岐の [履歴] ウィンドウを表示して、あなたが変更セット 66 で新しいメソッドをチェックインしたことを確認します。 チームメイトは変更セット 66 を右クリックし、[変更セットのトラッキング] をクリックします。そうすると、次のウィンドウが表示されます。
[変更セットのトラッキング] ウィンドウで、チームメイトはあなたが変更セット 66 でメソッドをチェックインし、変更セット 67 で feature2 分岐にマージしたことを確認します。 ただし、変更セット 67 が feature2-branchB 分岐にマージされるまで、チームメイトは新しいコードを取得できません。 そのため、チームメイトは feature2 分岐を feature2-branchB 分岐にドラッグしてソース管理マージ ウィザードを起動し、これを使用してマージを実行します。
ソース管理マージ ウィザードを使用したマージの実行
前の手順のいずれかを実行すると、ソース管理マージ ウィザードが表示されます。 このウィザードを使用して、マージのソースとターゲットを指定できます。 1 つの分岐全体を別の分岐にマージすることや、マージする特定の変更セットまたは変更セットのグループを選択することができます。
ソース管理マージ ウィザードを使用してファイル、フォルダー、または分岐をマージするには、次のようにします。
ソース管理マージ ウィザードの [ソース分岐] ボックスに、チーム プロジェクトのソース分岐の名前を入力するか、[参照] を選択して一覧から分岐を選択します。
[ターゲット分岐] ドロップダウン リストで、ソース分岐とマージするプロジェクトのターゲット分岐を選択します。
[特定のバージョンまでのすべての変更] または [選択された変更セット] のいずれかを選択して、ターゲット分岐にマージする変更の範囲を選択し、[次へ] を選択します。
ヒント
可能であれば、[特定のバージョンまでのすべての変更] を選択します。 この方法では、将来のマージでの競合のリスクが軽減されます。
[特定のバージョンまでのすべての変更] を選択すると、[ソース項目のバージョンの選択] ページが表示されます。 使用する項目のバージョンを選択します。
- 変更セット: 変更セットのバージョンを指定することによりマージします。
- 日付: 日付のバージョンを指定することによりマージします。
- ラベル: ラベルのバージョンを指定することによりマージします。
- 最新バージョン: 最新のバージョンを指定することによりマージします。
- ワークスペース バージョン: ワークスペースのバージョンを指定ことによりマージします。
または、[選択された変更セット] を選択した場合は、[ターゲット ブランチにマージする変更セットの選択] ページが表示されます。 マージする変更セットを選択します。
ヒント
複数の項目を選択するには、Ctrl または Shift キーを押しながら項目を選択します。
[次へ] を選択し、[マージ操作の実行] ページで [完了] を選択します。
1 つまたは複数の保留中の変更が生成されます。
必要に応じて、チーム エクスプローラーの [保留中の変更] ページを使用して、保留中の変更をすぐにチェックインします。 [表示]>[その他のウィンドウ]>[保留中の変更] を使用して、ページを開くことができます。 詳細については、「チームのコードベースへの作業のチェックイン」を参照してください。