VSCodeでGitの履歴を確認する方法

採用はこちら

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の履歴を確認する方法についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次