はじめに
VSCodeでアプリケーション開発をしている方の多くが、Gitによるバージョン管理を導入しています。しかし、「CLIコマンドならわかるけど、VSCodeのGUI操作がよくわからない」「どのメニューから操作すればいいのか迷う」といった悩みを抱えている方も多いのではないでしょうか。
本記事では、VSCodeの組み込みGit機能を使った具体的な操作手順を、CLIコマンドと対比させながら詳しく解説します。ブランチ戦略の基本から、日常的な運用フロー、よくある失敗とリカバリ方法まで、実務で必要な知識を網羅的にカバーします。
本記事の対象読者
- VSCodeでGitを使いたいが、GUI操作に不慣れな方
- CLIコマンドは理解しているが、IDE上での操作方法がわからない方
- Gitの基本は知っているが、実務での運用方法に悩んでいる方
- 複数ブランチを使った並行開発を始めたい方
前提知識
本記事では、以下の知識があることを前提としています。
- Gitの基本概念(commit、branch、merge)を理解している
- VSCodeの基本操作ができる
- リモートリポジトリ(GitHub、GitLabなど)が設定済み
VSCodeで使用する組み込みGit機能とは
VSCodeには標準でGit機能が組み込まれており、GUI操作でGitのほぼすべての機能を使用できます。さらに、拡張機能「GitLens」を追加することで、より強力な機能を利用可能です。
VSCodeのGit機能の特徴
- 視覚的な操作:ファイルの変更状態がサイドバーで一目瞭然
- 統合環境:コード編集とバージョン管理を同じ画面で実行
- コマンドパレット:すべてのGit操作をキーボードから実行可能
- インラインdiff:エディタ内で直接変更箇所を確認
- 統合ターミナル:必要に応じてCLIコマンドも併用可能
ただし、CLIに比べて以下の点に注意が必要です。
- 一部の高度な機能はCLIの方が使いやすい場合がある
- GitLensなど拡張機能を入れるとさらに便利だが、学習コストがある
- エラーメッセージがわかりにくいことがある
Git運用の基本:ブランチ戦略
実務でGitを使う際は、適切なブランチ戦略が重要です。本記事では、最も一般的な「GitFlow」をベースに解説します。
ブランチの種類と役割
main (master)
├── 本番環境にデプロイされる安定版
├── タグ付けしてバージョン管理
└── 直接コミットは原則禁止
develop
├── 開発の中心となるブランチ
├── 機能開発が統合される場所
└── mainにマージする前の検証用
feature/*
├── 新機能開発用の短期ブランチ
├── developから分岐
└── 完成後はdevelopにマージして削除
hotfix/*
├── 本番環境の緊急バグ修正用
├── mainから直接分岐
└── mainとdevelopの両方にマージ運用フローの全体像
develop → feature/new-function → develop → main
# 緊急修正フロー
main → hotfix/critical-bug → main + develop本番稼働中のシステムに対して、新規プロジェクト(大規模改修)を並行して進める場合は、feature/*ブランチを長期的に運用する形になります。
VSCodeのGit設定と初期セットアップ
ソース管理ビューの表示
VSCodeでGit操作を行うには、左サイドバーの「ソース管理」ビューを使用します。
VSCode操作手順:
- 左サイドバーのソース管理アイコンをクリック(またはキーボード:
Ctrl+Shift+G/Cmd+Shift+G) - プロジェクトがGitリポジトリとして認識されていることを確認
- ブランチ名が左下のステータスバーに表示される
Git Graphビューの表示(推奨)
Git Graphはブランチの履歴を視覚的に確認できる拡張機能です。
拡張機能のインストール:
- 左サイドバーの拡張機能アイコンをクリック(
Ctrl+Shift+X/Cmd+Shift+X) - 「Git Graph」を検索
- 「インストール」をクリック
使い方:
- ソース管理ビューの「...」メニュー → 「View Git Graph」
- またはコマンドパレット(
Ctrl+Shift+P/Cmd+Shift+P)→「Git: View Git Graph」
ユーザー情報の設定
初回のみ、Gitのユーザー情報を設定する必要があります。
CLIコマンド:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"VSCode操作手順:
- 統合ターミナルを開く(
Ctrl+Shift+@/Cmd+Shift+@) - 上記のCLIコマンドを実行
または設定ファイルから:
Ctrl+,/Cmd+,で設定を開く- 検索欄に「git.」と入力
- 「Git: Default Clone Directory」などGit関連設定を確認
ブランチ操作の基本
ブランチ一覧の確認
現在のリポジトリにどんなブランチがあるか確認します。
CLIコマンド:
# ローカルブランチ一覧
git branch
# 出力例:
# main
# * develop ← *が現在のブランチ
# feature/login
# リモートブランチも含めて表示
git branch -a
# 出力例:
# * develop
# main
# remotes/origin/develop
# remotes/origin/main
# remotes/origin/feature/loginVSCode操作手順:
- 左下のステータスバーのブランチ名をクリック
- ブランチ一覧がコマンドパレットに表示される
- ローカルブランチとリモートブランチが一覧表示
- 現在のブランチは先頭に表示される
またはコマンドパレット:
Ctrl+Shift+P/Cmd+Shift+P- 「Git: Checkout to...」と入力
- ブランチ一覧が表示される
Git Graphを使う場合:
- Git Graphビューを開く
- すべてのブランチがグラフで視覚的に表示される
既存ブランチへの切り替え
別のブランチに切り替える操作です。
CLIコマンド:
# ブランチ切り替え
git checkout develop
# または(Git 2.23以降)
git switch developVSCode操作手順:
- 左下のステータスバーのブランチ名をクリック
- 切り替えたいブランチを選択
またはコマンドパレット:
Ctrl+Shift+P/Cmd+Shift+P- 「Git: Checkout to...」
- ブランチを選択
注意点:
- 未コミットの変更がある場合、切り替え前にコミットまたはスタッシュが必要
- ファイルに変更がある状態で切り替えると警告が表示される
新しいブランチの作成
CLIコマンド:
# ブランチを作成して切り替え
git checkout -b feature/new-function
# または(Git 2.23以降)
git switch -c feature/new-function
# ブランチ作成のみ(切り替えない)
git branch feature/new-functionVSCode操作手順:
方法1:ステータスバーから
- 左下のブランチ名をクリック
- 「+ 新しいブランチの作成...」を選択
- ブランチ名を入力:
feature/new-function - Enterキーで作成と同時に切り替え
方法2:コマンドパレットから
Ctrl+Shift+P/Cmd+Shift+P- 「Git: Create Branch...」
- ブランチ名を入力
方法3:特定のブランチから作成
Ctrl+Shift+P/Cmd+Shift+P- 「Git: Create Branch From...」
- ブランチ名を入力
- 基準となるブランチを選択(例:
develop)
リモートへのプッシュ
新しいブランチをリモートリポジトリに送信します。
CLIコマンド:
# 初回プッシュ(追跡ブランチを設定)
git push -u origin feature/new-function
# 2回目以降
git pushVSCode操作手順:
- ソース管理ビューの「...」メニュー → 「プッシュ」
初回プッシュ時は以下のメッセージが表示される場合があります:
このブランチにはアップストリームブランチがありません。- 「OK」をクリック
- リモートブランチ名を確認して「OK」
または:
Ctrl+Shift+P/Cmd+Shift+P- 「Git: Push」
- 初回は「Git: Publish Branch」を選択
初回プッシュ後は「プッシュ」で簡単にプッシュできます。
基本的なGit操作フロー
ファイルの変更状態を確認
CLIコマンド:
git statusVSCode操作手順:
エディタ内での表示:
- 緑のバー:追加された行
- 青のバー:変更された行
- 赤い三角:削除された行
ソース管理ビューでの表示:
- 左サイドバーの「ソース管理」をクリック
- 変更ファイル一覧が表示される
- M:Modified(変更)
- U:Untracked(未追跡、新規作成)
- D:Deleted(削除)
- A:Added(追加)
- C:Conflict(競合)
ファイルエクスプローラーでの表示:
- 緑:新規作成ファイル
- オレンジ:変更されたファイル
ステージングとコミット
CLIコマンド:
# ファイルをステージング
git add src/main/java/com/example/Service.java
# すべてのファイルをステージング
git add .
# コミット
git commit -m "feat: ログイン機能を追加"VSCode操作手順:
- ソース管理ビューを開く(
Ctrl+Shift+G/Cmd+Shift+G) - 変更セクションに未ステージのファイル一覧が表示される
- ステージングする方法:
- 個別ファイル:ファイル右側の「+」アイコンをクリック
- すべてのファイル:「変更」セクションの「+」アイコンをクリック
- ステージされている変更セクションにファイルが移動
- 上部のメッセージ入力欄にコミットメッセージを入力
- 「✓」(コミット)ボタンをクリック
ショートカット:
- ファイル上で
Ctrl+Enter/Cmd+Enterでステージング - メッセージ入力後に
Ctrl+Enter/Cmd+Enterでコミット
コミットと同時にプッシュ:
- 「✓」ボタンの右側の「▼」をクリック
- 「コミットしてプッシュ」を選択
コミットメッセージの書き方
実務では統一されたフォーマットを使うと管理しやすくなります。
type: 変更内容を端的に
詳細な説明(必要に応じて)typeの例:
feat:新機能追加fix:バグ修正docs:ドキュメント変更style:コードスタイル修正(フォーマット、セミコロンなど)refactor:リファクタリングtest:テスト追加・修正chore:ビルドツール、設定ファイルなどの変更
例:
feat: ユーザー登録機能を追加
fix: ログインエラーを修正
docs: READMEのセットアップ手順を更新プル(リモートの変更を取得)
CLIコマンド:
git pull origin developVSCode操作手順:
- ソース管理ビューの「...」メニュー → 「プル」
- 自動的にリモートから最新の変更を取得してマージ
またはステータスバー:
- 左下のステータスバーの↻アイコン(同期)をクリック
- プルとプッシュを同時に実行
コマンドパレット:
Ctrl+Shift+P/Cmd+Shift+P- 「Git: Pull」
リモートの状態を確認してからプル:
- 「...」メニュー → 「フェッチ」
- Git Graphで履歴を確認
- 問題なければ「プル」
プッシュ(ローカルの変更をリモートに送信)
CLIコマンド:
git push origin developVSCode操作手順:
- ソース管理ビューの「...」メニュー → 「プッシュ」
またはステータスバー:
- 左下の↑アイコンの数字をクリック(プッシュ待ちのコミット数が表示される)
コマンドパレット:
Ctrl+Shift+P/Cmd+Shift+P- 「Git: Push」
または:
コミット時に「コミットしてプッシュ」を選択すれば一度に実行可能
日常的な運用フロー
パターン1:通常の機能開発(feature/*)
大規模改修やプロジェクトで、developブランチから長期的にfeatureブランチを運用するケースを想定します。
ステップ1:featureブランチの作成
CLIコマンド:
# developブランチに切り替え
git checkout develop
# 最新状態に更新
git pull origin develop
# featureブランチを作成して切り替え
git checkout -b feature/major-update
# リモートにプッシュ
git push -u origin feature/major-updateVSCode操作手順:
developに切り替え
- 左下のブランチ名をクリック → 「develop」を選択
最新化
- ソース管理ビューの「...」→「プル」
featureブランチ作成
- 左下のブランチ名をクリック
- 「+ 新しいブランチの作成...」
- ブランチ名:
feature/major-update - Enterで作成と切り替え
リモートへプッシュ
- ソース管理ビューの「...」→「プッシュ」
- 初回は「OK」をクリックして上流ブランチを設定
ステップ2:featureブランチで開発作業
CLIコマンド:
# featureブランチで作業
git checkout feature/major-update
# ファイルを編集...
# コミット&プッシュ
git add .
git commit -m "feat: 新機能Aの実装"
git push origin feature/major-updateVSCode操作手順:
featureブランチにいることを確認
- 左下のブランチ名を確認
開発作業を実施
- コード編集、ファイル追加など
コミット&プッシュ
- ソース管理ビューを開く
- 変更ファイルをステージング(「+」アイコン)
- コミットメッセージ入力:
feat: 新機能Aの実装 - 「✓」の右の「▼」→「コミットしてプッシュ」
ステップ3:定期的にdevelopの変更を取り込む
長期的なfeatureブランチでは、週1回程度developの変更をマージして同期を保ちます。
CLIコマンド:
# featureブランチにいることを確認
git checkout feature/major-update
# developの最新を取り込む
git merge develop
# コンフリクトがあれば解決(後述)
# プッシュ
git push origin feature/major-updateVSCode操作手順:
featureブランチで作業中の変更をコミット
- 未コミットの変更があれば先にコミット
developの変更を取り込む
Ctrl+Shift+P/Cmd+Shift+P- 「Git: Merge Branch...」と入力
- 「develop」を選択
コンフリクトが発生した場合
- 後述の「コンフリクト解決」を参照
プッシュ
- ソース管理ビューの「...」→「プッシュ」
ステップ4:本番リリース時にdevelopとmainにマージ
プロジェクトが完成し、本番環境にリリースする際の手順です。
CLIコマンド:
# developにマージ
git checkout develop
git pull origin develop
git merge feature/major-update
git push origin develop
# mainにマージ
git checkout main
git pull origin main
git merge develop
git push origin main
# タグ付け(任意)
git tag -a v2.0.0 -m "バージョン2.0.0リリース"
git push origin v2.0.0VSCode操作手順:
developにマージ
- 左下のブランチ名をクリック → 「develop」
- 「...」→「プル」
Ctrl+Shift+P/Cmd+Shift+P→ 「Git: Merge Branch...」- 「feature/major-update」を選択
- 「...」→「プッシュ」
mainにマージ
- 左下のブランチ名をクリック → 「main」
- 「...」→「プル」
Ctrl+Shift+P/Cmd+Shift+P→ 「Git: Merge Branch...」- 「develop」を選択
- 「...」→「プッシュ」
タグ付け(任意)
Ctrl+Shift+P/Cmd+Shift+P- 「Git: Create Tag...」
- タグ名:
v2.0.0 - メッセージ:
バージョン2.0.0リリース - 「...」→「プッシュ」→「プッシュ (タグを含む)」
パターン2:本番環境の緊急バグ修正(hotfix/*)
本番運用中に緊急のバグが見つかった場合は、mainブランチから直接hotfixブランチを作成します。
ステップ1:hotfixブランチの作成
CLIコマンド:
# mainブランチに切り替え
git checkout main
git pull origin main
# hotfixブランチを作成
git checkout -b hotfix/critical-bug
# リモートにプッシュ
git push -u origin hotfix/critical-bugVSCode操作手順:
mainに切り替えて最新化
- 左下のブランチ名をクリック → 「main」
- 「...」→「プル」
hotfixブランチ作成
- 左下のブランチ名をクリック
- 「+ 新しいブランチの作成...」
- ブランチ名:
hotfix/critical-bug - Enterで作成と切り替え
リモートへプッシュ
- ソース管理ビューの「...」→「プッシュ」
ステップ2:バグ修正とコミット
CLIコマンド:
# バグ修正作業...
# コミット&プッシュ
git add .
git commit -m "fix: 本番環境の〇〇エラーを修正"
git push origin hotfix/critical-bugVSCode操作手順:
- バグ修正作業を実施
- ソース管理ビューでステージング
- コミットメッセージ:
fix: 本番環境の〇〇エラーを修正 - 「コミットしてプッシュ」
ステップ3:mainとdevelopの両方にマージ
hotfixはmainとdevelopの両方に反映する必要があります。
CLIコマンド:
# mainにマージ
git checkout main
git merge hotfix/critical-bug
git push origin main
# タグ付け
git tag -a v1.0.1 -m "緊急修正v1.0.1"
git push origin v1.0.1
# developにもマージ
git checkout develop
git merge hotfix/critical-bug
git push origin develop
# hotfixブランチを削除
git branch -d hotfix/critical-bug
git push origin --delete hotfix/critical-bugVSCode操作手順:
mainにマージ
- 左下のブランチ名 → 「main」
Ctrl+Shift+P/Cmd+Shift+P→ 「Git: Merge Branch...」- 「hotfix/critical-bug」を選択
- 「...」→「プッシュ」
タグ付け
Ctrl+Shift+P/Cmd+Shift+P→ 「Git: Create Tag...」- タグ名:
v1.0.1、メッセージ:緊急修正v1.0.1 - 「...」→「プッシュ」→「プッシュ (タグを含む)」
developにマージ
- 左下のブランチ名 → 「develop」
Ctrl+Shift+P/Cmd+Shift+P→ 「Git: Merge Branch...」- 「hotfix/critical-bug」を選択
- 「...」→「プッシュ」
hotfixブランチ削除
Ctrl+Shift+P/Cmd+Shift+P- 「Git: Delete Branch...」
- 「hotfix/critical-bug」を選択
- リモートブランチも削除する場合は統合ターミナルで:
git push origin --delete hotfix/critical-bug
パターン3:並行して複数の機能を開発
通常のdevelop運用と並行して、長期featureブランチでプロジェクト対応を進める場合です。
障害対応(developでの作業)
CLIコマンド:
# developに切り替え
git checkout develop
git pull origin develop
# 修正作業...
# コミット&プッシュ
git add .
git commit -m "fix: ○○の不具合修正"
git push origin develop
# mainへマージ
git checkout main
git pull origin main
git merge develop
git push origin main
# featureブランチにも反映
git checkout feature/major-update
git merge develop
git push origin feature/major-updateVSCode操作手順:
developで修正
- 左下のブランチ名 → 「develop」
- 「...」→「プル」
- 修正作業
- コミット&プッシュ
mainへマージ
- 左下のブランチ名 → 「main」
- 「...」→「プル」
Ctrl+Shift+P/Cmd+Shift+P→ 「Git: Merge Branch...」→「develop」- 「...」→「プッシュ」
featureへ反映
- 左下のブランチ名 → 「feature/major-update」
Ctrl+Shift+P/Cmd+Shift+P→ 「Git: Merge Branch...」→「develop」- コンフリクトがあれば解決
- 「...」→「プッシュ」
この手順により、障害対応がfeatureブランチにも確実に反映されます。
コンフリクト(競合)の解決
複数のブランチで同じファイルの同じ箇所を編集すると、マージ時にコンフリクトが発生します。
コンフリクトが発生する状況
develop: System.out.println("Hello");
feature: System.out.println("こんにちは");
↓ developをfeatureにマージすると...
コンフリクト発生!CLIでのコンフリクト解決
CLIコマンド:
# マージを実行
git merge develop
# コンフリクトが発生
# Auto-merging src/main/java/Service.java
# CONFLICT (content): Merge conflict in src/main/java/Service.java
# ファイルを開いて手動で編集
# <<<<<<< HEAD
# System.out.println("こんにちは");
# =======
# System.out.println("Hello");
# >>>>>>> develop
# 正しい内容に修正
System.out.println("こんにちは"); # または適切な内容
# ステージング&コミット
git add src/main/java/Service.java
git commit -m "merge: developの変更を取り込み"VSCodeでのコンフリクト解決
VSCode操作手順:
コンフリクト発生時
- マージを実行するとソース管理ビューに「マージの変更」セクションが表示される
- コンフリクトしているファイルには「C」マークが表示される
コンフリクトファイルを開く
- ファイルをクリックして開く
- エディタ内にコンフリクトマーカーが表示される
マーカーの意味
<<<<<<< HEAD (Current Change)
System.out.println("こんにちは");
=======
System.out.println("Hello");
>>>>>>> develop (Incoming Change)<<<<<<< HEAD:現在のブランチの内容=======:区切り>>>>>>> develop:マージ元ブランチの内容
解決方法を選択
VSCodeはコンフリクト箇所の上部に以下のボタンを表示:
- Accept Current Change:現在のブランチの変更を採用
- Accept Incoming Change:マージ元ブランチの変更を採用
- Accept Both Changes:両方の変更を採用
- Compare Changes:差分を詳細に確認
適切なボタンをクリック
手動編集
- 必要に応じてコンフリクトマーカーを削除して手動で編集
- 例:両方を組み合わせた内容にする
ステージングとコミット
- すべてのコンフリクトを解決
- ソース管理ビューで「+」アイコンをクリックしてステージング
- コミットメッセージ:
merge: developの変更を取り込み - コミット
コンフリクト解決のコツ
- 小まめにマージ:週1回程度developをfeatureにマージすると、コンフリクトが小規模で済む
- コミット粒度を小さく:機能単位でコミットすることで、問題箇所の特定が容易
- コミュニケーション:チームで同じファイルを編集する場合は事前に調整
よくある失敗とリカバリ
失敗1:間違ったブランチで作業してしまった
mainブランチにいるつもりがdevelopで作業していた、というミスです。
まだコミットしていない場合
CLIコマンド:
# 変更を一時退避
git stash
# 正しいブランチに切り替え
git checkout feature/correct-branch
# 変更を復元
git stash popVSCode操作手順:
変更を退避
Ctrl+Shift+P/Cmd+Shift+P- 「Git: Stash」と入力
- 「Stash (Include Untracked)」を選択
正しいブランチに切り替え
- 左下のブランチ名をクリック
- 正しいブランチを選択
変更を復元
Ctrl+Shift+P/Cmd+Shift+P- 「Git: Apply Latest Stash」
すでにコミットしてしまった場合
CLIコマンド:
# コミットハッシュを確認
git log --oneline
# 例:abc1234 feat: 新機能追加
# 正しいブランチに切り替え
git checkout feature/correct-branch
# コミットをコピー
git cherry-pick abc1234
# 間違ったブランチに戻る
git checkout wrong-branch
# 最後のコミットを取り消し(ローカルのみ)
git reset --hard HEAD~1
# リモートにプッシュ済みの場合
git revert abc1234
git push origin wrong-branchVSCode操作手順:
コミット履歴を確認
- Git Graphを開く
- またはソース管理ビューの「...」→「コミット」→「表示」
- コミットハッシュをコピー(右クリック→「コミットIDのコピー」)
正しいブランチに切り替え
- 左下のブランチ名 → 正しいブランチ
コミットをコピー(Cherry-pick)
- 統合ターミナルで:
git cherry-pick abc1234
- 統合ターミナルで:
間違ったブランチのコミットを削除
- 左下のブランチ名 → 間違ったブランチ
- ローカルのみの場合(統合ターミナル):
git reset --hard HEAD~1 - リモートにプッシュ済みの場合(統合ターミナル):
git revert abc1234 git push origin wrong-branch
失敗2:プッシュできない(リモートが進んでいる)
他の人がリモートにプッシュした後、自分がプッシュしようとするとエラーになります。
! [rejected] develop -> develop (fetch first)
error: failed to push some refs to 'origin'CLIコマンド:
# リモートの変更を取得してマージ
git pull origin develop
# コンフリクトがあれば解決
# 再度プッシュ
git push origin developVSCode操作手順:
プルを実行
- ソース管理ビューの「...」→「プル」
- 自動的にリモートの変更がマージされる
コンフリクトがあれば解決
- 前述のコンフリクト解決手順を実施
プッシュ
- 「...」→「プッシュ」
または:
- 左下の同期アイコン(↻)をクリック
- プルとプッシュを同時に実行
失敗3:マージ後に問題が発覚
マージは実行したが、テストで問題が見つかった場合です。
CLIコマンド:
# 直前のマージを取り消し
git reset --hard ORIG_HEADVSCode操作手順:
統合ターミナルで:
git reset --hard ORIG_HEAD注意:
- リモートにプッシュ済みの場合は
resetではなくrevertを使用 reset --hardは変更を完全に削除するため慎重に実行
失敗4:コミットメッセージを間違えた
CLIコマンド:
# 直前のコミットメッセージを修正
git commit --amend -m "fix: 正しいコミットメッセージ"
# プッシュ済みの場合は強制プッシュ(注意!)
git push -f origin feature/branchVSCode操作手順:
プッシュ前の場合:
Ctrl+Shift+P/Cmd+Shift+P- 「Git: Commit Staged (Amend)」
- 正しいメッセージを入力
- コミット
プッシュ済みの場合:
統合ターミナルで強制プッシュ(チームメンバーに影響するため注意):
git commit --amend -m "fix: 正しいコミットメッセージ"
git push -f origin feature/branch失敗5:特定のファイルを元に戻したい
コミット前にファイルを元の状態に戻したい場合です。
CLIコマンド:
# 特定ファイルを元に戻す
git checkout -- src/main/java/Service.java
# すべてのファイルを元に戻す
git checkout -- .VSCode操作手順:
方法1:ソース管理ビューから
- ソース管理ビューを開く
- 元に戻したいファイルを右クリック
- 「変更を破棄」を選択
方法2:エディタから
- ファイルを開く
- エディタ上部の「変更の破棄」ボタンをクリック
方法3:すべてのファイルを元に戻す
- ソース管理ビューの「変更」セクションを右クリック
- 「すべての変更を破棄」を選択
便利なGit操作
操作1:コミット履歴の確認
CLIコマンド:
# 簡易表示
git log --oneline
# グラフ表示
git log --graph --oneline --all
# 出力例:
# * abc1234 (HEAD -> develop) feat: 機能追加
# * def5678 (origin/develop) fix: バグ修正
# * ghi9012 (main) chore: 初期設定VSCode操作手順:
方法1:Git Graph拡張機能
- ソース管理ビューの「...」→「View Git Graph」
- すべてのブランチがグラフで視覚的に表示される
- コミットをクリックすると詳細が表示される
- 右クリックで様々な操作が可能
方法2:VSCode組み込み機能
Ctrl+Shift+P/Cmd+Shift+P- 「Git: View History」
- コミット一覧が表示される
方法3:特定のファイルの履歴
- ファイルを右クリック
- 「タイムラインを表示」を選択
- 右サイドバーにファイルの変更履歴が表示される
操作2:変更内容の差分確認
CLIコマンド:
# まだステージングしていない変更
git diff
# ステージング済みの変更
git diff --staged
# ブランチ間の差分
git diff develop..mainVSCode操作手順:
方法1:未ステージの変更を確認
- ソース管理ビューで変更ファイルをクリック
- 左右比較エディタが開く
- 左:元のファイル
- 右:変更後のファイル
方法2:ステージ済みの変更
- 「ステージされている変更」のファイルをクリック
- 差分が表示される
方法3:ブランチ間の差分
Ctrl+Shift+P/Cmd+Shift+P- 「Git: Compare...」
- 比較元と比較先のブランチを選択
- 差分が表示される
方法4:インライン表示
- エディタ左端の色付きバーをクリック
- 変更箇所の詳細が表示される
操作3:スタッシュ(変更の一時退避)
作業中の変更を一時的に退避して、後で復元する機能です。
CLIコマンド:
# 変更を一時保存
git stash
# スタッシュ一覧
git stash list
# stash@{0}: WIP on develop: abc1234 feat: 機能追加
# stash@{1}: WIP on feature: def5678 fix: バグ修正
# 変更を復元(最新のスタッシュ)
git stash pop
# 特定のスタッシュを復元
git stash apply stash@{1}
# スタッシュを削除
git stash drop stash@{0}
# すべてのスタッシュを削除
git stash clearVSCode操作手順:
方法1:コマンドパレット
変更を退避
Ctrl+Shift+P/Cmd+Shift+P- 「Git: Stash」
- 「Stash (Include Untracked)」を選択
スタッシュ一覧を表示
Ctrl+Shift+P/Cmd+Shift+P- 「Git: Show All Stashes」
変更を復元
Ctrl+Shift+P/Cmd+Shift+P- 「Git: Apply Latest Stash」
- または「Git: Apply Stash...」で特定のスタッシュを選択
スタッシュを削除
Ctrl+Shift+P/Cmd+Shift+P- 「Git: Drop Stash...」
- 削除するスタッシュを選択
方法2:ソース管理ビューから
- ソース管理ビューの「...」
- 「スタッシュ」関連のメニューから操作
使用例:
急な障害対応が入り、feature開発を中断してdevelopで修正する場合に便利です。
feature開発中
↓ スタッシュで退避
↓ developに切り替えて障害対応
↓ 完了後、featureに戻る
↓ スタッシュを復元して開発再開操作4:特定のコミットを別ブランチに適用(Cherry-pick)
CLIコマンド:
# コミットハッシュを確認
git log --oneline
# 別ブランチに切り替え
git checkout target-branch
# 特定のコミットを適用
git cherry-pick abc1234VSCode操作手順:
- Git Graphを開く
- コピーしたいコミットを右クリック
- 「Copy Commit Hash」を選択
- 適用先のブランチに切り替え
- 統合ターミナルで:
git cherry-pick abc1234
操作5:ブランチの削除
CLIコマンド:
# ローカルブランチを削除
git branch -d feature/old-feature
# まだマージしていないブランチを強制削除
git branch -D feature/old-feature
# リモートブランチを削除
git push origin --delete feature/old-featureVSCode操作手順:
ローカルブランチ削除
Ctrl+Shift+P/Cmd+Shift+P- 「Git: Delete Branch...」
- 削除するブランチを選択
リモートブランチも削除
- 統合ターミナルで:
git push origin --delete feature/old-feature
- 統合ターミナルで:
削除できない場合
- まだマージしていないブランチは警告が出る
- 強制削除する場合は統合ターミナルで:
git branch -D feature/old-feature
操作6:特定のコミットに戻る
CLIコマンド:
# コミット履歴を確認
git log --oneline
# 特定のコミットに戻る(変更は保持)
git reset --soft abc1234
# 特定のコミットに戻る(変更も破棄)
git reset --hard abc1234VSCode操作手順:
- Git Graphでコミット履歴を表示
- 戻りたいコミットを右クリック
- 「Reset current branch to this commit」を選択
- リセットモードを選択:
- Soft:変更はステージング状態で保持
- Mixed:変更は未ステージで保持
- Hard:変更を完全に破棄
または統合ターミナル:
git reset --hard abc1234便利なショートカットと設定
よく使うショートカット
Windows / Mac の順に記載します。
- ソース管理ビューを開く:
Ctrl+Shift+G/Cmd+Shift+G - コマンドパレット:
Ctrl+Shift+P/Cmd+Shift+P - 統合ターミナルを開く:
Ctrl+Shift+@/Cmd+Shift+@ - クイックオープン:
Ctrl+P/Cmd+P - 設定を開く:
Ctrl+,/Cmd+,
カスタムショートカットの設定
Ctrl+K Ctrl+S/Cmd+K Cmd+Sでキーボードショートカット設定を開く- 検索欄に「git」と入力
- 設定したいコマンドの右側の「+」アイコンをクリック
- キーを入力(例:
Ctrl+Shift+C) - Enterで確定
推奨拡張機能
Git Graph
- ブランチの視覚的な表示
- コミット履歴を簡単に確認
GitLens
- コード内のGit情報を詳細に表示
- 誰がいつどこを変更したかが一目瞭然
- コミット履歴の詳細表示
Git History
- ファイルやブランチの履歴を表示
- 差分比較が簡単
VSCode設定の最適化
settings.jsonに以下を追加すると便利です:
{
// Gitの自動フェッチを有効化
"git.autofetch": true,
// コミット前に自動でステージング
"git.enableSmartCommit": true,
// プッシュ時に自動でタグもプッシュ
"git.followTagsWhenSync": true,
// 未保存のファイルをコミット時に自動保存
"git.enableCommitSigning": false,
// インラインdiffの表示
"diffEditor.renderSideBySide": true
}設定の開き方:
Ctrl+,/Cmd+,- 右上の「{}」アイコンをクリック
settings.jsonが開く
まとめ
本記事で学んだこと
- VSCodeの組み込みGit機能の基本操作
- ブランチ戦略(GitFlow)の実践的な運用
- CLIコマンドとGUI操作の対応関係
- よくある失敗パターンとリカバリ方法
- 便利なGit操作とショートカット設定
Git運用のベストプラクティス
- 小まめなコミット:機能単位で細かくコミット
- わかりやすいコミットメッセージ:統一フォーマットを使用
- 定期的な同期:週1回はfeatureにdevelopをマージ
- プッシュ前の確認:差分を確認してから実行
- コンフリクトは早期解決:放置すると複雑化
次のステップ
本記事で基本的なGit操作は理解できたはずです。さらにスキルアップするには:
- GitHubやGitLabのPull Request機能を使ったコードレビュー
- Git Hooksを使った自動化(コミット前のテスト実行など)
- Rebaseを使った履歴の整理
- Submoduleを使った外部ライブラリ管理
VSCodeのGit操作に慣れてきたら、CLIコマンドも併用すると、より柔軟な運用が可能になります。
関連記事


参考リンク
実務でGitを使いこなして、効率的な開発を進めていきましょう。
コメント