Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020
Visual Studio 2019 |Visual Studio 2022
Git では、親リンク、作成者の詳細、タイムスタンプなどの コミット メタデータ を使用して、リポジトリ内の変更履歴を追跡します。 Git の履歴を確認して、ファイルがいつ変更されたか、誰が変更したか、およびどのような変更が行われたかを確認できます。
ユーザーがプル要求を使用して機能ブランチを作成してターゲット ブランチにマージする場合、ターゲット ブランチの開発履歴は時系列の直線ではない可能性があります。 そのため、ターゲット ブランチ上のファイルに対する変更履歴を確認する場合、コミットの順序は、変更の元の日付だけでなく、 マージ戦略 とマージ日付の影響を受けることに注意してください。 たとえば、 main ブランチの最新のコミットでは、3 方向マージを使用して main ブランチにマージされただけの機能ブランチで数週間前に行われた変更が発生する可能性があります。
Git で Visual Studio 2022 を使用する方法については、「Git を使用して Visual Studio でバージョン管理を容易にする方法」を参照してください。
[前提条件]
| カテゴリ |
Requirements |
|
プロジェクトへのアクセス権 |
プロジェクトのメンバー。 |
|
アクセス許可 |
- プライベート プロジェクトのコードを表示する: 少なくとも Basic アクセス。 - プライベート プロジェクトのコードを複製または投稿する: 共同作成者 セキュリティ グループのメンバー、またはプロジェクト内の対応するアクセス許可。 - ブランチまたはリポジトリのアクセス許可を設定する: ブランチまたはリポジトリの アクセス許可を管理 します。 - 既定のブランチを変更する: リポジトリ のポリシー のアクセス許可を編集します。 - リポジトリをインポートする: プロジェクト管理者 セキュリティ グループのメンバーまたは Git プロジェクト レベルの [リポジトリ の作成 ] アクセス許可が [許可] に設定されています。 詳細については、「Git リポジトリのアクセス許可を設定する」を参照してください。 |
|
サービス |
リポジトリが有効になっています。 |
|
ツール |
Optional.
az repos コマンドを使用する: Azure DevOps CLI。 |
注
パブリック プロジェクトでは、 利害関係者 アクセス権を持つユーザーは、コードの表示、複製、投稿など、Azure Repos へのフル アクセス権を持ちます。
| カテゴリ |
Requirements |
|
プロジェクトへのアクセス権 |
プロジェクトのメンバー。 |
|
アクセス許可 |
- コードの表示: 少なくとも 基本 アクセス。 - コードの複製または投稿: 共同作成者 セキュリティ グループのメンバー、またはプロジェクト内の対応するアクセス許可。 |
|
サービス |
リポジトリが有効になっています。 |
ファイルのバージョンを比較する
特定のファイル変更が発生した方法とタイミングを把握したい場合は、異なるコミットから同じファイルの異なるバージョンを比較する必要がある場合があります。場合によっては、異なるブランチで比較する必要があります。
Azure DevOps チーム プロジェクト サイトでは、同じブランチ内のコミットから同じファイルの 2 つのバージョンを比較できますが、ブランチ間でのファイル バージョンの比較はサポートされていません。
Web ブラウザーから、Azure DevOps 組織のチーム プロジェクトを開きます。 [ リポジトリ > ファイル ] ビューで、ファイルを選択し、[ 比較 ] タブを選択します。
[比較] タブで、 比較 するファイル バージョンを含む 2 つのコミットを選択します。 差分ビューには、新しいファイル行、削除されたファイル行、または変更されたファイル行が表示されます。
注
GitHub では、異なるブランチ間で異なるコミットから同じファイルの 2 つのバージョンを比較できます。 比較するには、 /compare/<commit1>..<commit2> を GitHub リポジトリの URL に追加して、比較ページに移動します。 比較ページには、異なる各ファイルの差分ビューが含まれています。 GitHub でのコミット比較の詳細については、「 コミットの比較」を参照してください。
Visual Studio 2022 では、Git メニュー、Git の変更、およびソリューション エクスプローラーのコンテキスト メニューを使用して、Git バージョン管理エクスペリエンスが提供されます。 Visual Studio 2019 バージョン 16.8 には、 チーム エクスプローラー の Git ユーザー インターフェイスも用意されています。 詳細については、「 Visual Studio 2019 - チーム エクスプローラー 」タブを参照してください。
Visual Studio では、同じブランチ内の同じファイルの 2 つのバージョンを比較できますが、ブランチ間でのファイル バージョンの比較はサポートされていません。
ソリューション エクスプローラーでファイルを選択し、ファイルのコンテキスト メニューから [Git >履歴の表示] を選択して、選択したファイルの [Git 履歴] タブを開きます。
[ Git 履歴 ] タブで、コミットのコンテキスト メニューから [ 前と比較 ] を選択し、選択したコミットと前のコミットを比較する [差分 ] タブを開きます。
または、2 つのコミットを選択し、いずれかのコミットのコンテキスト メニューから [比較 ] を選択して、選択した 2 つのコミットを比較する [差分 ] タブを開きます。
[ 差分 ] タブには、新規、削除、または変更されたファイル行が表示されます。
チーム エクスプローラーでは、この機能はサポートされていません。
git diff コマンドは、異なるブランチ間で異なるコミットから同じファイルの異なるバージョンを比較できます。
git log コマンドは、比較するファイル バージョンを含むコミットを識別するのに役立ちます。
git logを使用し、ファイルを指定して、ファイルを変更したコミットを一覧表示します。
git log <file>
既定では、コマンドの出力は現在のブランチの最新のコミットから始まり、各コミットのメタデータ内の親リンクに従って(ブランチに関係なく) 先祖コミットを後方に反復処理します。
コマンド git log index.htmlの出力の例を次に示します。
commit bbc3b679197b659544a6f8070c79fb535b496613
Date: Thu Jun 30 13:42:50 2021 -0400
update landing page
commit e5402fe710c25eca1b96a4e238eee9c01ed41c6a
Date: Thu Jun 30 13:42:23 2021 -0400
initial commit
git diffを使用し、ファイルと 2 つのコミットを指定して、コミットされたファイルのバージョンがどのように異なるかを確認します。
git diff <commit1> <commit2> <file>
コマンド git diff bbc3b67 e5402fe index.htmlの出力の例を次に示します。
- <link rel="stylesheet" href="app.cs"/>
+ <link rel="stylesheet" href="fabrikam.cs"/>
出力は、1 行が削除され、1 行が追加されたことを示しています。
Git ログ出力を制限する
リストをコミットをgit logするには、作成者、日付、メッセージ、変更されたコンテンツなどをフィルター処理します。 例えば次が挙げられます。
git log --author=frank@fabrikam.com index.html は、指定された作成者によるコミットのみを一覧表示します。
git log --since="2022-5-1" 指定した日付より後に作成されたコミットのみが一覧表示されます。
git log --before="yesterday" 指定された相対日付より前に作成されたコミットのみが一覧表示されます。
git log --grep="css change" は、メッセージ内の指定されたテキストを持つコミットのみを一覧表示します。
git log -S"myVariable" 指定された文字列を導入または削除するコミットのみが一覧表示されます。
git log -G"myVar.*" 指定された正規表現文字列を導入または削除するコミットのみが一覧表示されます。
git log -3 最後の 3 つのコミットのみが一覧表示されます。
コミット リストには、いくつかの 形式 オプションがあります。 例えば次が挙げられます。
git log --abbrev-commit は、省略された ID (SHA-1 チェックサム) を使用してコミットを一覧表示します。
git log --oneline では、各コミットが 1 行の省略形で一覧表示されます。
git log --patch index.html では、各コミットが変更の差分と共に一覧表示されます。
ファイルを復元する
ファイルが後のコミットで編集、削除、または名前変更された場合でも、Git 履歴から特定のバージョンのファイルを復元できます。 古いバージョンのファイルを復元しても、変更による新しいコミットは作成されません。 復元されたファイル バージョンでブランチを更新するには、変更をコミットする必要があります。
Azure DevOps チーム プロジェクト サイトでは、特定のコミットによって行われたすべての変更を元に戻すことができますが、コミット内の特定のファイルへの変更の元に戻すことはできません。
Visual Studio では、同じブランチ内の同じファイルの 2 つのバージョンを比較できますが、ブランチ間でのファイル バージョンの比較はサポートされていません。
ソリューション エクスプローラーでファイルを選択し、ファイルのコンテキスト メニューから [Git >履歴の表示] を選択して、選択したファイルの [Git 履歴] タブを開きます。
[ Git 履歴 ] タブで、コミットのコンテキスト メニューから [ 前と比較 ] を選択し、選択したコミットと前のコミットを比較する [差分 ] タブを開きます。
または、2 つのコミットを選択し、いずれかのコミットのコンテキスト メニューから [比較 ] を選択して、選択した 2 つのコミットを比較する [差分 ] タブを開きます。
[ 差分 ] タブには、新規、削除、または変更されたファイル行が表示されます。
Visual Studio 2019 バージョン 16.8 以降のバージョンでは、 チーム エクスプローラー の Git ユーザー インターフェイスを維持しながら、Git バージョン管理エクスペリエンスが提供されます。
チーム エクスプローラーを使用するには、メニュー バーから Tools>Options>Preview Features>New Git ユーザー エクスペリエンスをオフにします。
ソリューション エクスプローラーでファイルを選択し、ファイルのコンテキスト メニューから [Git >履歴の表示] を選択して、選択したファイルの [Git 履歴] タブを開きます。
[ Git 履歴 ] タブでコミットを選択し、 コミット のコンテキスト メニューから [コミットの詳細の表示] を選択して [ コミットの詳細 ] ビューを開きます。
[ コミットの詳細 ] ビューでファイルを選択し、ファイルのコンテキスト メニューから [開く ] を選択して、新しいタブで以前のバージョンのファイルを開きます。
メニュー バーから [ファイル] > [名前を付けて保存] を選択して、復元されたバージョンのファイルを保存します。
Git チェックアウトまたは git show コマンドを使用して、Git 履歴から特定のバージョンのファイルを復元できます。
ファイルとコミットを指定すると、git checkout によってファイルが以前にコミットされたバージョンに戻されます。
git checkout <commit> <file>
たとえば、git checkout 85435fac src/app.tsはコミット src/app.tsで85435fac ファイルをそのバージョンに戻します。
git show では、以前にコミットされたファイル バージョンの内容が出力ファイルにリダイレクトされます。
git show <commit>:<file> > <output file>
たとえば、git show 85435fac:src/app.ts > /archive/oldapp.tsはコミット app.tsの85435facの内容を/archive/oldapp.tsに書き込みます。
分岐を比較する
ローカルブランチまたはリモートブランチを比較して、 マージ または リベースの結果となる変更を確認できます。 分岐比較を使用すると、マージの競合を確認し、他のユーザーによる変更が作業にどのように影響するかを確認できます。
Visual Studio 2019 以前のバージョンではブランチの比較がサポートされていないため、これらのバージョンのいずれかを使用している場合は、 Git コマンド ライン または Web ブラウザー (リポジトリが Azure Repos または GitHub でホストされている場合) でブランチを比較できます。 Visual Studio 2022 では、「分岐の比較」で説明されているように、 ブランチの比較がサポートされています。
Web ブラウザーから、Azure DevOps 組織のチーム プロジェクトを開きます。 [ Repos > Branchs]\(リポジトリブランチ \) ビューで、任意のブランチの省略記号を選択し、[ ブランチの比較 ] を選択して ブランチ比較 ビューを開きます。
[分岐比較] ビューで、比較する 2 つの分岐を選択します。 [ ファイル ] タブを選択すると、変更された各ファイルの新しい行、削除された行、または変更された行の差分ビューが表示されます。
注
GitHub では、ブランチの比較がサポートされています。 2 つのブランチを比較するには、GitHub リポジトリの URL に /compare/<branch1>...<branch2> を追加して比較ページに移動します。 比較ページには、異なる各ファイルの差分ビューが含まれています。 GitHub でのブランチ比較の詳細については、「 ブランチの比較」を参照してください。
ブランチを現在のブランチと比較するには、リポジトリの [ ブランチ ] ウィンドウでブランチを右クリックし、比較オプションを選択します。 コンテキスト メニューでは、現在のブランチとターゲット ブランチの名前を指定します。
Visual Studio 2019 では、ブランチ比較はサポートされていません。 ただし、リポジトリが Azure Repos または GitHub でホストされている場合は、 Git コマンド ライン または Web ブラウザーを使用してブランチを比較できます。
ヒント
Web ポータルを選択すると、チーム エクスプローラー のホーム ビューから Web ポータルにアクセスできます。
2 つのローカル ブランチまたはリモート ブランチを比較するには、ブランチ名を指定する Git diff コマンドを使用します。
git diff <branch1> <branch2>
Git では、1 つのブランチの先端にあるコミットと、もう一方の分岐の先端にあるコミットが比較されます。 差分出力には、2 つのブランチ内の各ファイル間の削除と追加が表示されます。
ローカル ブランチとリモート ブランチを比較するコマンド git diff users/frank/feature origin/mainの出力の例を次に示します。
index 36843b8..03afc4b 100644
--- a/tsapp/index.html
+++ b/tsapp/index.html
@@ -4,7 +4,7 @@
<head>
<meta charset="utf-8" />
<title>TypeScript HTML App</title>
- <link rel="stylesheet" href="fabrikam-test.css" type="text/css" />
+ <link rel="stylesheet" href="fabrikam.css" type="text/css" />
<script src="app.js"></script>
</head>
...
--- a/tsapp/app.ts
+++ b/tsapp/app.ts
constructor(element: HTMLElement) {
this.element = element;
- this.element.innerHTML += "The time is: ";
+ this.element.innerHTML += "The time is now: ";
this.span = document.createElement('span');
this.element.appendChild(this.span);
this.span.innerText = new Date().toUTCString();
特定のファイルとの比較を絞り込むには、 diff コマンドでファイルを指定します。
git diff <branch1> <branch2> <file>
たとえば、 git diff users/frank/feature origin/main index.html では、 index.html ファイルの差分のみが生成されます。
次のステップ
関連資料