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