VSCodeにはGitとの連携機能が標準搭載されており、拡張機能を追加しなくてもコミット履歴やファイルごとの変更履歴を確認できます。
Gitの履歴を確認する方法はいくつかあり、確認したい内容によって使い分けるのがポイントです。
リポジトリ全体のコミット履歴を確認したい場合は「Source Control Graph」、特定ファイルの変更履歴を確認したい場合は「Timeline」、特定の行を最後に変更したコミットを調べたい場合は「Git blame」が便利です。
また、VSCodeの統合ターミナルからgit logなどのGitコマンドを実行して、より詳細な履歴を確認することもできます。
Source Control Graphでコミット履歴を確認する
Source Control Graphとは
Source Control Graphは、VSCodeに標準搭載されているGit履歴表示機能です。
コミットの流れやブランチの分岐、マージなどをグラフィカルに確認できます。
プロジェクト全体のGit履歴を把握したい場合に特に便利です。
Source Control Graphの開き方
まず、Gitで管理されているプロジェクトをVSCodeで開きます。
次に、画面左側のアクティビティバーから「ソース管理」を選択します。
WindowsやLinuxでは、次のショートカットでもソース管理ビューを開けます。
Ctrl + Shift + G
ソース管理ビュー内に表示されるSource Control Graphを開くと、コミット履歴を確認できます。
コミットを選択すると、そのコミットで変更されたファイルを確認できます。
さらに変更されたファイルを選択すれば、具体的な差分も確認できます。
Source Control Graphで確認できる主な情報
Source Control Graphでは、主に次のような情報を確認できます。
- コミットメッセージ
- コミットしたユーザー
- ブランチの分岐
- ブランチのマージ
- ローカルブランチとリモートブランチの関係
- 各コミットで変更されたファイル
- コミットごとの差分
Gitの履歴を視覚的に確認したい場合は、まずSource Control Graphを利用すると分かりやすいでしょう。
参考サイト
VS Code標準のGit機能を補完する「Git Graph」のススメ
IncomingとOutgoingのコミットを確認する
Incomingとは
Incomingは、リモート側には存在するものの、ローカル側にはまだ反映されていないコミットを表します。
たとえば、GitHub上のリモートリポジトリで他のメンバーが新しいコミットをPushしたものの、自分のローカル環境ではまだ取得していない場合、そのコミットがIncomingとして扱われます。
Outgoingとは
Outgoingは、ローカル側ではコミット済みであるものの、まだリモートリポジトリへPushしていないコミットを表します。
つまり、ローカルからリモートへ送信される予定のコミットです。
最新のリモート情報を確認するにはFetchも重要
IncomingやOutgoingを正確に確認するには、ローカル側がリモートリポジトリの最新状態を把握している必要があります。
必要に応じて、次のコマンドで最新情報を取得できます。
git fetch
チーム開発では、Git履歴を確認する前にFetchを実行しておくと、リモート側の最新状態を把握しやすくなります。
Timelineで特定ファイルのGit履歴を確認する
Timelineとは
Timelineは、特定ファイルに関連する履歴を時系列で確認できるVSCodeの機能です。
プロジェクト全体ではなく、特定のファイルだけの変更履歴を調べたい場合に便利です。
TimelineにはGitコミットだけでなく、環境によってはローカル保存など別の履歴情報が表示される場合もあります。
Timelineの開き方
まず、履歴を確認したいファイルをVSCodeで開きます。
次に、画面左側の「エクスプローラー」を開きます。
WindowsやLinuxでは、次のショートカットを利用できます。
Ctrl + Shift + E
エクスプローラー内にある「TIMELINE」を展開すると、そのファイルに関連する履歴が表示されます。
コミットを選択すると、その時点でどのような変更が行われたのか確認できます。
Timelineが便利な場面
Timelineは、次のような場面で役立ちます。
- 特定ファイルがいつ変更されたか確認したい
- 過去のコードを確認したい
- どのコミットで不具合が入ったか調べたい
- ファイル単位で変更の流れを追いたい
ファイル単位で履歴を確認する場合は、Source Control GraphよりTimelineのほうが分かりやすいケースもあります。
Git blameで特定行の変更履歴を確認する
Git blameとは
Git blameは、ファイル内の各行について、その行を最後に変更したコミットや作者を確認できる機能です。
「このコードは誰が最初に書いたのか」を必ず特定できる機能ではありません。
あくまで、現在の各行を最後に変更したコミットを確認するための機能です。
VSCodeでGit blameを表示する方法
まず、コマンドパレットを開きます。
WindowsやLinuxでは次のショートカットです。
Ctrl + Shift + P
Macでは次のショートカットを利用します。
Command + Shift + P
コマンドパレットから、次のコマンドを実行するとGit blame情報をエディター上に表示できます。
Git: Toggle Git Blame Editor Decoration
また、ステータスバーにGit blame情報を表示したい場合は、次のコマンドを利用できます。
Git: Toggle Git Blame Status Bar Item
Git blameの設定
VSCodeでは、設定からGit blameの表示方法を調整できます。
たとえば、次の設定があります。
"git.blame.statusBarItem.enabled": true,
"git.blame.editorDecoration.enabled": true
Git blameを普段から利用する場合は、これらの設定を有効にしておくと便利です。
ターミナルからgit logで履歴を確認する
git logの基本的な使い方
VSCodeには統合ターミナルがあるため、Gitコマンドを使って履歴を確認することもできます。
基本的なコマンドは次のとおりです。
git log
git logを実行すると、コミット履歴が表示されます。
一般的には、コミットID、作者、日時、コミットメッセージなどを確認できます。
コミット履歴を1行で表示する
大量の履歴を簡潔に確認したい場合は、次のコマンドが便利です。
git log --oneline
表示例は次のようになります。
a1b2c3d Fix login validation
e4f5g6h Add login page
i7j8k9l Initial commit
コミットIDとコミットメッセージを簡潔に確認できるため、履歴全体を素早く把握したい場合に向いています。
ブランチの履歴をグラフ表示する
–graphを使って履歴を確認する
ブランチの分岐やマージをターミナルから確認したい場合は、次のコマンドが便利です。
git log --graph --oneline --all
複数ブランチの履歴をグラフ形式で確認できます。
さらに、ブランチ名やタグも表示したい場合は、次のようにします。
git log --graph --oneline --decorate --all
--decorateを追加すると、各コミットに関連するブランチ名やタグなども表示されます。
特定ファイルのGit履歴を確認する
特定ファイルのコミット履歴を見る
特定のファイルに関するコミットだけを確認したい場合は、次のコマンドを利用できます。
git log -- ファイル名
たとえば、index.htmlの履歴を確認する場合は次のようにします。
git log -- index.html
コミット履歴を簡潔に表示したい場合は、次のようにします。
git log --oneline -- index.html
ファイル名変更前の履歴も確認する
ファイルが途中でリネームされている場合は、--followを利用すると便利です。
git log --follow -- index.html
これにより、現在のファイル名になる以前の履歴まで追跡できる場合があります。
長期間運用されているプロジェクトや、ファイル名変更が多いプロジェクトでは特に便利なオプションです。
ファイルの変更内容まで確認する
git log -pを利用する
コミット履歴だけでなく、各コミットでどのような変更が行われたのかまで確認したい場合は、-pオプションを利用します。
git log -p -- index.html
このコマンドを実行すると、対象ファイルについてコミットごとの差分も確認できます。
ファイル名変更前の履歴まで確認したい場合は、次のように組み合わせることもできます。
git log --follow -p -- index.html
不具合の原因となった変更を探すときに役立ちます。
特定コミットの内容をgit showで確認する
git showの基本的な使い方
確認したいコミットIDが分かっている場合は、git showを利用できます。
git show コミットID
たとえば、次のように実行します。
git show a1b2c3d
そのコミットに関する情報や変更内容を確認できます。
変更されたファイルや変更量だけを簡潔に確認したい場合は、次のコマンドも便利です。
git show --stat a1b2c3d
コマンドラインからGit blameを利用する
git blameの基本的な使い方
VSCodeの画面上だけでなく、ターミナルからGit blameを実行することもできます。
git blame ファイル名
たとえば、次のように実行します。
git blame index.html
すると、ファイル内の各行について、その行を最後に変更したコミットや作者などを確認できます。
特定行の変更理由を詳しく調べたい場合は、Git blameでコミットIDを確認してからgit showを利用すると効率的です。
git blame
↓
該当行のコミットIDを確認
↓
git show
↓
コミット内容や差分を確認
Gitの履歴が表示されない場合の確認ポイント
Gitリポジトリになっているか確認する
まず、VSCodeで開いているフォルダがGitリポジトリとして管理されているか確認します。
ターミナルで次のコマンドを実行します。
git status
Gitリポジトリではない場合は、Gitリポジトリではない旨のエラーが表示されます。
新しくGit管理を開始する場合は、次のコマンドを利用できます。
git init
VSCodeのソース管理画面からリポジトリを初期化することもできます。
Gitがインストールされているか確認する
VSCodeのGit連携機能は、基本的にパソコンにインストールされているGitを利用します。
Gitが利用できるか確認するには、次のコマンドを実行します。
git --version
Gitがインストールされていれば、次のようにバージョン情報が表示されます。
git version 2.x.x
コミットが存在するか確認する
Gitリポジトリを作成したばかりで、一度もコミットしていない場合は、表示できるコミット履歴がありません。
git logを実行して履歴が表示されない場合は、コミットが作成されているか確認しましょう。
GitLensを使ってさらに詳しく履歴を確認する
標準機能で足りない場合に利用する
VSCode標準のGit機能だけでも、一般的なGit履歴の確認には十分対応できます。
ただし、さらに高度な履歴分析やGit情報の可視化を行いたい場合は、GitLensなどの拡張機能を利用する方法もあります。
とはいえ、Git履歴を確認するだけであれば、必ずGitLensを導入する必要はありません。
まずはVSCode標準のSource Control Graph、Timeline、Git blameなどを利用し、不足を感じた場合に拡張機能を検討するとよいでしょう。
VSCodeでGit履歴を確認するときの使い分け
目的に応じて確認方法を選ぶ
VSCodeでGitの履歴を確認する方法は、目的によって使い分けると効率的です。
| 確認したい内容 | おすすめの方法 |
|---|---|
| リポジトリ全体のコミット履歴 | Source Control Graph |
| ブランチの分岐やマージ | Source Control Graph |
| 特定ファイルの履歴 | Timeline |
| 特定行を最後に変更したコミット | Git blame |
| コミット一覧を簡潔に確認 | git log --oneline |
| ブランチを含めて履歴確認 | git log --graph --oneline --all |
| 特定コミットの変更内容 | git show |
| 特定ファイルの詳細履歴 | git log -p -- ファイル名 |
| リネーム前を含めたファイル履歴 | git log --follow -- ファイル名 |
普段のGit操作では、まずSource Control Graphでプロジェクト全体の履歴を確認し、必要に応じてTimelineやGit blameで詳細を追う方法が分かりやすいでしょう。
さらに細かく調査したい場合は、VSCodeの統合ターミナルからgit logやgit showを併用することで、変更の流れをより詳しく把握できます。
以上、VSCodeでGitの履歴を確認する方法についてでした。
最後までお読みいただき、ありがとうございました。









