コードのコミット、共有、および同期

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

Visual Studio 2019 | Visual Studio 2022

Azure Repos および Git リポジトリを使用してコードの開発を開始します。 Visual Studio または Git コマンドを使用して、リポジトリのクローン、ローカル ブランチの定義、変更のコミットとプッシュ、他のユーザーとの同期を行うことができます。 リポジトリを作成またはインポートする必要がある場合は、「プロジェクトで新しい Git リポジトリを作成する」または「Git リポジトリをインポートする」を参照してください。

Note

この記事では、Visual Studio を使用して Azure Repos Git リポジトリを管理する方法について説明します。 同様の手順を使用して、Visual Studio を使用して GitHub リポジトリを管理できます。 GitHub リポジトリをクローンするには、「リポジトリをクローンする」の説明に従って URL を取得します。

Git ワークフローの概要については、Azure Repos Git チュートリアル参照してください。

Note

Visual Studio 2019 バージョン 16.8 以降のバージョンでは、Git ワークフローを管理するために、チーム エクスプローラーよりもコンテキストの切り替えが少ない新しい Git メニューが提供されます。 この記事の Visual Studio タブで提供される手順では、チーム エクスプローラーに加えて、Git エクスペリエンスを使用するための情報を示します。 詳細については、「Git とチーム エクスプローラーを並べて比較する」を参照してください。

前提条件

  • Repos を Azure DevOps プロジェクト設定で有効にする必要があります。 Repos ハブと関連ページが表示されない場合は、Azure DevOps サービスのオンとオフの切り替えに関するページを参照して Repos を再度有効にしてください。

  • プライベート プロジェクトのコードを表示するには、Basic 以上のアクセス レベルの Azure DevOps プロジェクト メンバーである必要があります。 パブリック プロジェクトの場合、誰でもコードを表示できます。

  • プライベート プロジェクトのコードを複製または投稿するには、共同作成者セキュリティ グループのメンバーであるか、対応するアクセス許可が設定されている必要があります。 パブリック プロジェクトの場合、誰でもコードの複製と投稿ができます。 詳細については、パブリック プロジェクトとは何かに関するページを参照してください。

    Note

    パブリック プロジェクトの場合、利害関係者アクセス権を付与されたユーザーは、Azure Repos へのフル アクセス権があります。

  • Repos を、Azure DevOps プロジェクト設定で有効にする必要があります。 Repos ハブと関連ページが表示されない場合は、Azure DevOps サービスのオンとオフの切り替えに関するページを参照して Repos を再度有効にしてください。

  • コードを表示するには、Basic 以上のアクセス権を持つ Azure DevOps プロジェクト メンバーである必要があります。 プロジェクト メンバーでない場合は、追加してもらいます

  • コードを複製または投稿するには、変更しようとしているプロジェクトの共同作成者セキュリティ グループのメンバーであるか、対応するアクセス許可を持っている必要があります。

アクセス許可とアクセス権の詳細については、「既定の Git リポジトリとブランチのアクセス許可」および「アクセス レベルについて」を参照してください。

コードを取得する

リモート Git リポジトリをクローンして、そのローカル コピーを作成できます。 クローンでは、ユーザーが操作するソース コードのコピーと、Git でソース コードを管理可能にするためのバージョン管理情報の両方が作成されます。

クローンせずにローカル リポジトリを作成する場合は、「新しい Git リポジトリを作成する」を参照してください。 ローカル リポジトリを作成したら、作業のコミット共有同期に進むことができます。

Visual Studio 2022 は、[Git] メニュー、[Git 変更]、および [ソリューション エクスプローラー] のコンテキスト メニューを使用して、Git バージョン管理エクスペリエンスを提供します。 Visual Studio 2019 バージョン 16.8 には、チーム エクスプローラーの Git ユーザー インターフェイスも用意されています。 詳細については、「Visual Studio 2019 - チーム エクスプローラー」タブを参照してください。

  1. メニュー バーの [Git] メニューから、[リポジトリのクローン...] を選択します。

    Visual Studio の Git メニューの [リポジトリのクローン] オプションのスクリーンショット。

  2. [リポジトリのクローン] ウィンドウに、リモート リポジトリの場所と、複製されたリポジトリのフォルダー パスを入力します。 リモート リポジトリの場所がわからない場合は、[リポジトリを参照する] オプションから [Azure DevOps] を選択します。

    Visual Studio の [リポジトリのクローン] ウィンドウのスクリーンショット。

  3. [複製] を選択します。 Git リポジトリをクローンすると、Visual Studio によってリポジトリが検出され、Git メニューの [ローカル リポジトリ] の一覧に追加されます。

    Visual Studio の Git メニューの [ローカル リポジトリ] オプションのスクリーンショット。

Note

Azure DevOps Services では、プロジェクト URL の形式は dev.azure.com/{your organization}/{your project} です。 ただし、visualstudio.com 形式を参照する以前の形式は引き続きサポートされています。 詳細については、「Azure DevOps の概要」の「新しいドメイン名 URL を使用するように既存の組織を切り替える」を参照してください。

作業をコミットする

Git ブランチでは、変更がプロジェクト内の他の作業から分離されます。 推奨される Git ワークフローでは、作業するすべての機能または修正プログラムに新しいブランチが使用されます。 ローカル Git リポジトリでコミットを行い、そのブランチに変更を保存します。

  1. メニュー バーの [Git] メニューから [新しいブランチ...] を選択して、[新しいブランチの作成] ウィンドウを開きます。

    Visual Studio の [Git] メニューの [新しいブランチ] オプションのスクリーンショット。

  2. [新しいブランチの作成] ウィンドウで、ブランチに含まれる作業を他のユーザーに知らせるわかりやすいブランチ名を入力します。 既定の Visual Studio では、現在のブランチから新しいブランチが作成されます。 [ブランチのチェックアウト] チェックボックスをオンにすると、新しく作成されたブランチに自動的に切り替わります。 [作成] を選択します

    Visual Studio の [新しいブランチを作成する] ウィンドウのスクリーンショット。

  3. 複製されたリポジトリに README.md ファイルを追加します。 ソリューション エクスプローラーでは、[フォルダー ビュー] を使用してリポジトリの内容を参照するか、リポジトリで Visual Studio ソリューションを開くことができます。 Git では Visual Studio の内部と外部の両方で行われた変更が追跡されます。

  4. 変更に問題がなければ、コミットを使用して、それらを Git に保存します。 [Git 変更] ウィンドウで、変更を説明するメッセージを入力し、[すべてコミット] を選びます。 [すべてコミット] では、ステージされていない変更がコミットされ、ステージング領域がスキップされます。 Git 変更 ウィンドウの 変更 セクションの上部にある + すべてをステージ (プラス) ボタンを選択して、コミットする前にすべてのファイルをステージングすることを選択できます。

    Visual Studio の [Git 変更] ウィンドウにある [すべてコミット] ボタンのスクリーンショット。

    コミット情報リンクを選択すると、コミットに関する詳細を取得できます。

    Visual Studio 内のコミット情報リンクを示すスクリーンショット。

Note

複数のファイルがあり、すべてをコミットしたくない場合は、各ファイルを右クリックして [ステージ] を選択できます。 コミットするすべてのファイルをステージングしたら、[ステージング済みをコミット] を選択します。 変更を手動でステージングした場合、[ステージング済みをコミット][すべてコミット] の代わりに使用されます。

Visual Studio 2019 の [Git 変更] ウィンドウにある [ステージ] オプションのスクリーンショット。

変更を共有する

ブランチに 1 つ以上のコミットを追加し、それらの変更を他のユーザーと共有する準備ができたら、コミットをプッシュして、他のユーザーが確認できるようにします。

コミットをプッシュしたら、pull request を作成できます。 pull request を使用すると、変更をレビューしてもらう必要があることを他のユーザーに知らせます。 承認された後、pull request では通常、リモート リポジトリの既定のブランチに変更が追加されます。

  1. [Git 変更] ウィンドウで、上矢印のプッシュ ボタンを選択してコミットをプッシュします。

    Visual Studio の [Git 変更] ウィンドウにある上矢印のプッシュ ボタンのスクリーンショット。

    または、[Git リポジトリ] ウィンドウから変更をプッシュすることもできます。 [Git リポジトリ] ウィンドウを開くには、[Git 変更] ウィンドウで [発信 / 着信] リンクを選択します。

    Visual Studio の [Git 変更] ウィンドウの [発信 / 着信] リンクと、 [Git リポジトリ] ウィンドウの [プッシュ] リンクのスクリーンショット。

    または、メニュー バーの [Git] メニューから変更をプッシュすることもできます。

    Visual Studio の Git メニューの [プッシュ] オプションのスクリーンショット。

  2. pull request を作成し、他のユーザーが変更を確認できるようにします。 [Git 変更] ウィンドウから変更をプッシュしたばかりの場合は、[Pull request の作成] リンクを選択して Web ブラウザーを開き、Azure Repos Web ポータルで新しい pull request を作成できます。

    Visual Studio の [Git 変更] ウィンドウにある [Pull request の作成] リンクのスクリーンショット。

    または、[Git リポジトリ] ウィンドウから変更をプッシュしたばかりの場合は、そのウィンドウの上部にある [Pull request の作成] リンクを選択できます。

    Visual Studio の [Git リポジトリ] ウィンドウにある [Pull request の作成] リンクのスクリーンショット。

    または、[Git リポジトリ] ウィンドウで任意のブランチを右クリックし、[Pull request の作成] を選択することもできます。

    Visual Studio の [Git リポジトリ] ウィンドウのブランチ コンテキスト メニューにある [Pull request の作成] メニュー オプションのスクリーンショット。

Azure Repos Web ポータルで pull request が開いたら、ソースと宛先のブランチを確認します。 この例では、add-readme-file ブランチからのコミットを main ブランチにマージする必要があります。 タイトルとオプションの説明を入力し、レビュー担当者を指定し、必要に応じて作業項目を関連付け、[作成] を選択します。

Azure Repos Web ポータルの [新しい pull request] フォームのスクリーンショット。

pull request の詳細については、Pull request のチュートリアルを参照してください。

他のユーザーと同期する

他のユーザーによって作成されたコミットをプルすることで、ローカル ブランチをリモート ブランチと同期させることができます。 Git は着信した変更を自分の変更とマージすることに適していますが、マージの競合を解決しなければならない場合もあります。 機能ブランチで作業している間は、定期的に main ブランチに切り替え、新しいコミットをプルして、リモートの main ブランチを使って最新の状態を保つことをお勧めします。

[Git 変更] ウィンドウでは、[フェッチ][プル][プッシュ][同期] の各ボタンを使用して、リモート ブランチを使ってローカル ブランチを最新の状態に保つことができます。

Visual Studio の [Git 変更] ウィンドウの [フェッチ]、[プル]、[プッシュ]、[同期] ボタンのスクリーンショット。

前のスクリーンショットの左から右へ向かって、ボタン コントロールは次のとおりです。

  • [フェッチ] では、ローカル ブランチに存在しないリモート コミットがダウンロードされますが、マージされません。
  • [プル] では、フェッチが実行され、ダウンロードしたコミットがローカル ブランチにマージされます。
  • [プッシュ] では、プッシュされていないコミットがリモート リポジトリにアップロードされ、対応するリモート ブランチに追加されます。
  • [同期] では、[プル] を実行してから [プッシュ] を実行します。

Git メニューから [フェッチ][プル][プッシュ][同期] を選択することもできます。

Visual Studio の [Git] メニューの [フェッチ]、[プル]、[プッシュ]、[同期] オプションのスクリーンショット。