ファイルをバージョン管理サーバーに追加する

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

Visual Studio 2019 | Visual Studio 2022

Visual Studio ソリューション エクスプローラーを使用していて、プロジェクトがバージョン管理されているときは、多くの場合、ファイルは自動的にバージョン管理に追加されます。 ただし、場合によっては、ファイルとプロジェクトをバージョン管理に追加するために、余分な手順が必要になります。

前提条件

Visual Studio でバージョン管理にファイルを追加できるようにするには、まず開発用コンピューターのワークスペースをセットアップします。

重要

これらの手順は、ローカル ワークスペースを使用する場合にのみ適用されます。 ローカル ワークスペースを使用すると、新しいファイルは自動的に保留中の変更として検出されます。 逆に、サーバー ワークスペースに保存したファイルは、保留中の変更として表示されずに追加およびチェックインされます。

バージョン管理された新しいコード プロジェクトとソリューションを作成する

新しい Visual Studio プロジェクトを作成してバージョン管理に追加すると、ご自身とチームは、作成する最初のコード行から、バージョン管理によるすべての恩恵を即座に享受できます。

  1. Visual Studio で、Azure DevOps プロジェクトに接続します。

  2. [ファイル]>[新しいプロジェクト] の順に選択するか、Ctrl + Shift + N キーを押します。

  3. [新しいプロジェクトの作成] 画面で、作成するコード プロジェクトの種類を選択し、[次へ] を選択します。

    [新しいプロジェクトの作成] ダイアログ ボックスのスクリーンショット。

  4. [新しいプロジェクトを構成します] 画面の [プロジェクト名] の下に、プロジェクトの名前を入力します。

  5. [場所] で、開発用コンピューターのセットアップ時に作成したワークスペース内のローカル作業フォルダーへのパス (c: \code\SiteApp\Main\ など) を指定します。

  6. 残りの設定はそのままにして、[次へ] を選択します。

    [新しいプロジェクトを構成します] ダイアログ ボックスのスクリーンショット。

  7. [追加情報] 画面で、必要に応じて設定を変更し、[作成] を選択します。

  8. プロジェクトが作成されたら、ソリューション エクスプローラーで表示します。ソリューション エクスプローラー を開くには Ctrl + Alt + L キーを押します。

    ソリューション エクスプローラーの新しいコード プロジェクトのスクリーンショット

  9. ソリューション エクスプローラーでソリューション名を右クリックし、コンテキスト メニューから [ソリューションをソース管理に追加] を選択します。

  10. [チーム エクスプローラー] ウィンドウに切り替え、[チェックイン] を選択して、プロジェクトをソース管理にチェックインします。

既存のソリューションとコード プロジェクトをバージョン管理の対象にする

バージョン管理に既存のソリューションを追加するには、すべてのソリューション ファイルをご自身のワークスペースに移動して、Visual Studio に追加します。

  1. Visual Studio で、Azure DevOps プロジェクトに接続します。

  2. [表示]>[Other Windows] (その他のウィンドウ)>[ソース管理エクスプローラー] の順に選択します。

  3. ソース管理エクスプローラーで、ソリューションの論理上の親フォルダー ($/SiteApp/Main など) に移動します。ここで SiteApp はプロジェクトの名前です。 ローカル フォルダーの名前付けの詳細については、「フォルダーの名前を最適化する」を参照してください。

  4. ウィンドウ上部の [ローカル パス] の横にあるリンクを選択して、Windows エクスプローラーで親フォルダーを開きます。 リンクに [マップされていません] と表示される場合は、ワークスペースのマッピングの詳細について、「ワークスペースの作成と操作」を参照してください。

  5. エクスプローラーで、ソリューションを含むフォルダーを親フォルダーに移動します。

  6. Visual Studio で、[ファイル]>[Open Project] (プロジェクトを開く) の順に選択し、ソリューションに移動して開きます。

  7. ソリューション エクスプローラーでソリューション名を右クリックし、コンテキスト メニューから [ソリューションをソース管理に追加] を選択します。

  8. もう一度ソリューション名を右クリックし、コンテキスト メニューから [チェックイン] を選択します。

  9. [チーム エクスプローラー][保留中の変更] ページで、[除外される変更] セクションに [検出済み] リンクが表示されている場合は、そのリンクを選択します。

  10. [候補の変更の昇格] ダイアログ ボックスに、ソリューション内のコード プロジェクトによって参照されていないファイルが一覧表示されます。 チェックインする対象としてこれらのファイルのいずれかを選択し、チェックインしないファイルの選択を解除してから、[昇格する] を選択し、選択したファイルを [含まれる変更] に移動します。 一覧表示されているファイルをどれもチェックインしない場合は、[キャンセル] を選択してダイアログ ボックスを閉じます。

  11. [チェックイン] を選択します。

詳細については、保留中の変更の送信に関する記事を参照してください。

バージョン管理に 1 つまたは複数のファイルを追加する

Visual Studio ソリューション エクスプローラーでコード プロジェクトにファイルを追加すると、バージョン管理にファイルが自動的に追加されます。 また、コード プロジェクトによって参照されていないファイルも追加できます。

バージョン管理に 1 つまたは複数のファイルを自動的に追加する

  1. Visual Studio で、Azure DevOps プロジェクトに接続します。

  2. [表示]>[Other Windows] (その他のウィンドウ)>[ソース管理エクスプローラー] の順に選択します。

  3. ソース管理エクスプローラーで、ファイルまたはフォルダーを追加するフォルダーに移動します。

  4. [ソース管理エクスプローラー] ウィンドウ上部の [ローカル パス] の横にあるリンクを選択して、Windows エクスプローラーでターゲット フォルダーを開きます。 リンクに [マップされていません] と表示される場合は、「ワークスペースの作成と操作」を参照し、ワークスペースをマップしてください。

  5. エクスプローラーで、ファイルまたはフォルダーをターゲット フォルダーに移動します。

  6. Visual Studio の [チーム エクスプローラー][保留中の変更] ページで、[除外される変更] の下に [検出済み] リンクが表示されている場合は、そのリンクを選択します。

  7. [候補の変更の昇格] ダイアログ ボックスで、チェックインするファイルのみを選択し、[昇格] を選択します。 一覧表示されているファイルをどれもチェックインしない場合は、[キャンセル] を選択します。

  8. [チェックイン] を選択します。

詳細については、保留中の変更の送信に関する記事を参照してください。

ファイルをバージョン管理に手動で追加する

ファイルをバージョン管理に手動で追加することもできます。

  1. Visual Studio で、[表示]>[Other Windows] (その他のウィンドウ)>[ソース管理エクスプローラー] を選択します。

  2. ソース管理エクスプローラーで、ファイルを追加するフォルダーに移動します。

    重要

    このフォルダーがチェックインされていることを確認してください。 新しいフォルダーを作成する場合は、そのフォルダーを右クリックして [チェックイン] を選択し、新しいフォルダーをチェックインしてから次に進みます。

  3. Windows エクスプローラーから Visual Studio の [ソース管理エクスプローラー] ウィンドウにファイルをドラッグします。

  4. [チーム エクスプローラー][保留中の変更] ページで、追加するすべてのファイルが [Included items] (含まれる項目) に一覧表示されていることを確認し、[チェックイン] を選択します。

コードに含まれていないバイナリを使用する

多くのチームは、自分たちのコード ソリューションの外部に存在するバイナリに依存しています。 通常、これらのバイナリは、チームがサード パーティからライセンスを取得したライブラリの一部であるか、同じ会社の別のチームから取得したバイナリです。 たとえば、チーム A はチーム B が生成したバイナリに依存し、各チームはそれぞれ異なるプロジェクト コレクションで作業しているとします。 チーム B はチーム A にバイナリを渡し、それをチーム A がバージョン管理にチェックインします。

ヒント

NuGet パッケージを使用すると、チームが簡単に依存関係を管理し、バイナリを最新の状態に保つことができます。 NuGet パッケージは、Azure Artifacts を使用して Azure DevOps Server または Azure DevOps Services に保存できます。

外部バイナリの保存に使用するフォルダーとワークスペース構造は、ソリューションがそれらのバイナリにどのように依存しているかによって異なります。

フォルダーまたはブランチ構造にバイナリを追加する

ソリューション フォルダーを含むものと同じ親フォルダーに外部バイナリを配置すると、すべてのソリューションのコード プロジェクトがすべて同じ相対パスでライブラリを参照できます。 たとえば、チームは次のフォルダー構造を使用できます。

メインの親フォルダー内のライブラリ フォルダーを示す図。

この場合、すべてのコード プロジェクトで、相対パス ../../Lib を使用してこのライブラリ フォルダーを参照できます。

異なるバージョンのバイナリを必要とする作業を分離する必要がチームに生じた場合、ソリューション フォルダーと共にライブラリ フォルダーをブランチに分岐できます。 たとえば、アプリのバージョン 1 はライブラリのバージョン 1 を利用します。 一部の開発者は次のバージョンで作業するのでバージョン 2 を使用しますが、他の開発者はアップグレードする準備ができていません。 ブランチを使用すると、このような状況に対処できます。

ブランチ構造内のライブラリ フォルダーを示す図。

ワークスペースを使用してバイナリをマップする

会社によっては、外部ライブラリのより複雑な依存関係の管理が必要となる場合があります。 たとえば、複数のプロジェクトで、そこに含まれるソリューションのライブラリ セットが共通であってもその依存関係が異なる場合です。 こうした場合は、外部ライブラリを専用プロジェクトに保存できます。 さまざまなプロジェクトの共同作成者は、必要とするライブラリを含むフォルダーをマップします。

たとえば、FabrikamFiber では、次のプロジェクト、ブランチ、フォルダー構造を設定しています。

専用プロジェクトに保存されているライブラリを示す図。

開発者は、2 つの異なる作業のための 2 つのワークスペースを含む開発用コンピューターをセットアップでき、それぞれで、必要なライブラリがマップされています。

ワークスペースでどのようにライブラリがマップされているかを示す図。

バージョン管理で無視するファイルをカスタマイズする

既定では、バージョン管理で .dll ファイルなど、特定の種類のファイルが無視されます。 無視されたファイルをローカル ワークスペースにマップされているフォルダーに追加するか、または無視されたファイルをソース管理エクスプローラーにドラッグすると、それらのファイルは、[チーム エクスプローラー][保留中の変更] ページの [除外された項目] の下に表示されます。

無視するファイルの種類を構成するには、構成で適用するフォルダーに .tfignore というテキスト ファイルを配置します。 .tfignore ファイルの効果は再帰的ですが、サブフォルダー内の .tfignore ファイルは親フォルダーの .tfignore ファイルをオーバーライドします。

.tfignore ファイルの規則

.tfignore ファイルには、次の規則が適用されます。

  • # はコメント行を開始します。
  • ワイルドカード * および ? がサポートされています。
  • filespec は \ 文字で始まっていない限り、再帰的です。
  • ! は filespec を無効にするので、パターンに一致するファイルは無視されません。

.tfignore ファイルの例

######################################
# Ignore .cpp files in the ProjA subfolder and all its subfolders
ProjA\*.cpp
#
# Ignore .txt files in this folder
\*.txt
#
# Ignore .xml files in this folder and all its sub-folders
*.xml
#
# Ignore all files in the Temp sub-folder
\Temp
#
# Don't ignore .dll files in this folder nor in any of its subfolders
!*.dll

.tfignore ファイルを作成して使用する

上記の規則を使用する .tfignore テキスト ファイルを手動で作成することも、[保留中の変更] ページで除外される変更が検出されたときに .tfignore ファイルが自動的に生成されるようにすることもできます。

  1. [チーム エクスプローラー][保留中の変更] ページで、[除外される変更] セクションの [検出済み] リンクを選択します。
  2. 候補の変更の昇格 ダイアログ ボックスで、無視するファイルを右クリックし、コンテキスト メニューから このローカル項目を無視Ignore by extension (拡張子によって無視)ファイル名によって無視、または Ignore by folder (フォルダーによって無視 を選択します。
  3. [キャンセル] を選択して、ダイアログ ボックスを閉じます。
  4. .tfignore ファイルが、[保留中の変更] ページの [含まれる変更] セクションに表示されます。 このファイルを開き、ニーズに合わせて変更できます。

.tfignore ファイルは、含まれる保留中の変更として追加されるため、作成した規則は、ファイルを取得したユーザーに自動的に適用されます。

コマンド プロンプトから作業する

自動化されたプロセスの場合、またはコマンド プロンプトを使用する場合は、この記事の手順の代わりに tf.exe add コマンド を使用できます。 add コマンドを使用して、ローカル コンピューター上のワークスペースからサーバーにファイルをアップロードします。