次の方法で共有


コミットを使用して作業を保存する

Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020

Visual Studio 2019 |Visual Studio 2022

リポジトリ内のファイルを変更しても、Git は作業のスナップショットを自動的に取得しません。 特定の変更をステージングすることで、スナップショットにキャプチャするファイルの変更を Git に指示します。 ステージング後、コミットを行ってスナップショットを保存します。

この記事では、次のタスクの手順について説明します。

  • Git が変更を追跡する方法
  • コミットの内容
  • 変更をステージングする方法
  • コミットを作成する方法
  • 最後のコミットを更新する方法

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

[前提条件]

カテゴリ Requirements
プロジェクトへのアクセス権 プロジェクトのメンバー。
アクセス許可 - プライベート プロジェクトのコードを表示する: 少なくとも Basic アクセス。
- プライベート プロジェクトのコードを複製または投稿する: 共同作成者 セキュリティ グループのメンバー、またはプロジェクト内の対応するアクセス許可。
- ブランチまたはリポジトリのアクセス許可を設定する: ブランチまたはリポジトリの アクセス許可を管理 します。
- 既定のブランチを変更する: リポジトリ のポリシー のアクセス許可を編集します。
- リポジトリをインポートする: プロジェクト管理者 セキュリティ グループのメンバーまたは Git プロジェクト レベルの [リポジトリ の作成 ] アクセス許可が [許可] に設定されています。 詳細については、「Git リポジトリのアクセス許可を設定する」を参照してください。
サービス リポジトリが有効になっています
ツール Optional. az repos コマンドを使用する: Azure DevOps CLI

パブリック プロジェクトでは、 利害関係者 アクセス権を持つユーザーは、コードの表示、複製、投稿など、Azure Repos へのフル アクセス権を持ちます。

カテゴリ Requirements
プロジェクトへのアクセス権 プロジェクトのメンバー。
アクセス許可 - コードの表示: 少なくとも 基本 アクセス。
- コードの複製または投稿: 共同作成者 セキュリティ グループのメンバー、またはプロジェクト内の対応するアクセス許可。
サービス リポジトリが有効になっています

Git が変更を追跡する方法

リポジトリで作業すると、Git は追跡されたすべてのファイルに対する変更を 追跡 します。 追跡されるファイルは、現在ステージングされているか、前のコミットに含まれているファイルです。 Git では、追跡対象のファイルが次の 3 つのカテゴリに分けられます。

  • 変更されていないファイル - 最後のコミット以降に変更していないファイル。
  • 変更されたファイル - 前回のコミット以降に変更したが、次のコミット用にステージングしていないファイル。
  • ステージング ファイル - 前回のコミット以降に変更し、次のコミット用にステージングしたファイル。

3 つの状態の間のリポジトリ内のファイルのライフサイクルを示すスクリーンショット。

コミットを作成すると、ステージングされたファイルと変更されていないファイルのみがスナップショットに使用されます。 変更されたファイルに対する未設定の変更は保持されますが、スナップショットには変更されていないバージョンのファイルが含まれています。 Git では、新しいファイルの変更を追跡したり、ステージングするまでスナップショットに新しいファイルを含めたりすることはありません。

コミットはローカル Git リポジトリに作成されます。 各コミットは完全である必要はありません。また、意図した変更を実現するには、いくつかのコミットが必要になる場合があります。 作業中にコミットを作成します。完了したら、コミットをリモート リポジトリに プッシュ して、他のユーザーと作業を共有できます。

コミットの内容

コミット には、次の情報が含まれます。

  • コミット時にリポジトリ内のすべての追跡対象ファイルのスナップショット。 スナップショットはコミット間の違いではありませんが、Git ではスナップショットを使用して違いを計算します。 スナップショットを使用すると、 ブランチ間の 高速切り替えが可能になり、ブランチ のマージが サポートされます。
  • 親コミットへの参照。 ほとんどのコミットには 1 つの親がありますが、ブランチマージ後の次のコミットには複数の親があり、リポジトリ内の最初のコミットには何もありません。
  • コミットの変更を説明するメッセージ。 コミットの作成時にメッセージを入力します。

Git では、各コミットのスナップショットと親参照を使用して、リポジトリ内の開発の完全な記録を維持します。 コードの変更を調査するには、リポジトリの Git 履歴 を確認します。

変更をステージングする方法

コミットのスナップショットを作成するには:

  • 新しいファイルをステージングして、新しいファイルをスナップショットに追加し、Git でそれらのファイルへの変更を追跡することを Git に通知します。
  • 編集されたファイルをステージングして、変更されていないファイルバージョンではなく、変更されたファイルバージョンをスナップショットに含める必要がある旨を Git に通知します。
  • 削除されたファイルをステージングして、スナップショットから削除して追跡しなくなったことを Git に通知します。

スナップショットから一時ファイル、ログ ファイル、またはその他のファイルを除外するには、 特定のファイルを無視するように Git を構成します。

Git では、編集されたファイルの対話型ステージングがサポートされているため、ファイル内の特定の変更をステージングすることを選択できます。 これは、異なるコミットで異なるファイル編集が必要な場合に便利な機能です。

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

[ Git の変更 ] ウィンドウで、[ 変更 ] セクションでファイルを右クリックし、[ ステージ ] を選択して [ ステージングされた変更 ] セクションに追加します。

Visual Studio の [Git の変更] ウィンドウの [変更] オプションのスクリーンショット。

または、ファイルの横にあるプラス記号を選択して、変更されたファイルをステージングすることもできます。 フォルダー内のすべての変更されたファイルをステージングするには、フォルダーの横にあるプラス記号を選択します。 リポジトリ内のすべての変更されたファイルをステージングするには、[ 変更 ] セクションの右上隅にあるプラス記号を選択します。

ファイルを右クリックして [ このローカル項目 を無視する] または [ この拡張子を無視する] を選択することで、ファイルを無視するように Git に指示できます。 どちらのコマンドでも、リポジトリに .gitignore ファイルが存在しない場合は作成され、エントリが追加されます。 無視されたファイルは、Visual Studio の [変更 ] セクションには表示されません。 ただし、 .gitignore ファイルは追跡されたファイルには影響しません。 追跡対象のファイルを無視するように Git を構成する方法については、「 ファイルを無視する」を参照してください。 時間を節約するために、GitHub gitignore リポジトリからさまざまな開発環境用の . gitignore テンプレートをダウンロードできます。

Visual Studio 2022 バージョン 17.3 以降、Visual Studio では、ファイル内の部分的な変更のステージングがサポートされています。 詳細については、「 Visual Studio でのコード行のステージ」を参照してください。

コミットを作成する方法

[Git Changes]\( Git の変更 \) ウィンドウで、ステージングされた変更を説明するメッセージを入力し、[ Commit Staged]\(ステージングされたコミット\) を選択します。

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

コミットの詳細については、コミット リンクを選択します。

Visual Studio の [Git の変更] ウィンドウの [コミットの詳細] リンクを示すスクリーンショット。

すべての変更がステージングされていない場合は、ステージングをスキップし、[ すべてコミット] を選択して直接コミットできます。

Visual Studio の [Git の変更] ウィンドウの [すべてコミット] オプションのスクリーンショット。

最後のコミットを更新する方法

Git では、最後のコミットのステージング されたファイルまたはメッセージの変更がサポートされています。 この操作により、最後のコミットが、両方のコミットからステージングされたファイルを結合し、新しいコミット メッセージを使用する新しいコミットに置き換えられます。 コミットの修正は、ファイルのステージングを忘れた場合や、最後のコミット メッセージに入力ミスがある場合に便利です。

Warnung

既に プッシュされた コミットは、リモート リポジトリとの同期の問題を引き起こすので、修正しないでください。 プッシュされたコミットの場合は、次のいずれかの方法を使用します。

  • 以前のコミットによって発生した問題を修正する別のコミットを作成してプッシュします。
  • git revertを使用して、前のコミットによって行われたすべての変更を元に戻す新しいコミットを作成して、プッシュされた前のコミットを元に戻します。 次に、新しいコミットをプッシュします。

[Git Changes]\( Git の変更 \) ウィンドウで、必要に応じて 1 つ以上のファイルをステージングし、コミット メッセージを入力し、[ 修正] を選択して、[ ステージングのコミット] を選択します。

Visual Studio の [Git の変更] ウィンドウの [前のコミットの修正] オプションを示すスクリーンショット。

[Git Changes]\(Git の変更\) ウィンドウでは、コミット メッセージ、ステージング ファイル、またはその両方の修正がサポートされます。 [修正] を選択すると、前のコミットの識別子 SHA が表示されます。

次のステップ