はじめに
EclipseでJavaアプリケーション開発をしている方の多くが、Gitによるバージョン管理を導入しています。しかし、「CLIコマンドならわかるけど、EclipseのGUI操作がよくわからない」「どのメニューから操作すればいいのか迷う」といった悩みを抱えている方も多いのではないでしょうか。
本記事では、EclipseのGitプラグイン(EGit)を使った具体的な操作手順を、CLIコマンドと対比させながら詳しく解説します。ブランチ戦略の基本から、日常的な運用フロー、よくある失敗とリカバリ方法まで、実務で必要な知識を網羅的にカバーします。
本記事の対象読者
- EclipseでGitを使いたいが、GUI操作に不慣れな方
- CLIコマンドは理解しているが、IDE上での操作方法がわからない方
- Gitの基本は知っているが、実務での運用方法に悩んでいる方
- 複数ブランチを使った並行開発を始めたい方
前提知識
本記事では、以下の知識があることを前提としています。
- Gitの基本概念(commit、branch、merge)を理解している
- Eclipseの基本操作ができる
- リモートリポジトリ(GitHub、GitLabなど)が設定済み
Eclipseで使用するGitプラグイン「EGit」とは
Eclipseには標準でGitプラグイン「EGit」が組み込まれており、GUI操作でGitのほぼすべての機能を使用できます。Spring Tool Suite(STS)などのEclipseベースのIDEでも同じ操作が可能です。
EGitの特徴
- 視覚的な操作:ファイルの変更状態がアイコンで表示される
- 統合環境:コード編集とバージョン管理を同じ画面で実行
- 競合解決ツール:マージ時のコンフリクトを視覚的に解決
- 履歴表示:コミット履歴をグラフィカルに確認
ただし、CLIに比べて以下の点に注意が必要です。
- 一部の高度な機能はCLIの方が使いやすい場合がある
- メニュー階層が深く、慣れるまで操作場所を探すのに時間がかかる
- エラーメッセージがわかりにくいことがある
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/*ブランチを長期的に運用する形になります。
EclipseのGit設定と初期セットアップ
Gitパースペクティブの表示
EclipseでGit操作を効率的に行うには、Gitパースペクティブを表示しておくと便利です。
Eclipse操作手順:
- メニューバー → 「ウィンドウ」→「パースペクティブ」→「パースペクティブを開く」→「その他...」
- 「Git」を選択 → 「開く」
- 画面右上に「Git」タブが追加される
リポジトリビューの確認
Eclipse操作手順:
- メニューバー → 「ウィンドウ」→「ビューの表示」→「その他...」
- 「Git」フォルダを展開 → 「Gitリポジトリー」を選択 → 「開く」
- 「Gitリポジトリー」ビューにプロジェクトのリポジトリが表示される
このビューでブランチ一覧、リモート設定、タグなどを確認できます。
ユーザー情報の設定
初回のみ、Gitのユーザー情報を設定する必要があります。
CLIコマンド:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"Eclipse操作手順:
- メニューバー → 「ウィンドウ」→「設定」
- 「チーム」→「Git」→「構成」を選択
- 「ユーザー設定」タブを選択
- 「エントリーの追加...」をクリック
- キー:
user.name、値:あなたの名前 → 「OK」 - 同様に
user.emailも追加
ブランチ操作の基本
ブランチ一覧の確認
現在のリポジトリにどんなブランチがあるか確認します。
CLIコマンド:
# ローカルブランチ一覧
git branch
# 出力例:
# main
# * develop ← *が現在のブランチ
# feature/login
# リモートブランチも含めて表示
git branch -a
# 出力例:
# * develop
# main
# remotes/origin/develop
# remotes/origin/main
# remotes/origin/feature/loginEclipse操作手順:
- プロジェクト右クリック → 「チーム」→「切り替え」→「その他...」
- ブランチ一覧が表示される
- 「ローカル」フォルダ:ローカルブランチ
- 「リモート・トラッキング」フォルダ:リモートブランチ
- 現在のブランチには「✓」マークが付く
または:
「Gitリポジトリー」ビュー → リポジトリ展開 → 「ブランチ」を展開
既存ブランチへの切り替え
別のブランチに切り替える操作です。
CLIコマンド:
# ブランチ切り替え
git checkout develop
# または(Git 2.23以降)
git switch developEclipse操作手順:
- プロジェクト右クリック → 「チーム」→「切り替え」→「その他...」
- 切り替えたいブランチを選択
- 「チェックアウト」ボタンをクリック
または:
- 「Gitリポジトリー」ビュー → 「ブランチ」→ 目的のブランチ
- 右クリック → 「チェックアウト」
注意点:
- 未コミットの変更がある場合、切り替え前にコミットまたはスタッシュが必要
- ファイルに変更がある状態で切り替えると警告が表示される
新しいブランチの作成
CLIコマンド:
# ブランチを作成して切り替え
git checkout -b feature/new-function
# または(Git 2.23以降)
git switch -c feature/new-function
# ブランチ作成のみ(切り替えない)
git branch feature/new-functionEclipse操作手順:
- プロジェクト右クリック → 「チーム」→「切り替え」→「新規ブランチ...」
- ブランチ名を入力:
feature/new-function - 「ソース」で基準となるブランチを選択(通常は
develop) - 「新規ブランチをチェックアウト」にチェック ← これで作成と同時に切り替え
- 「完了」をクリック
ブランチ作成のみ(切り替えない):
- 「Gitリポジトリー」ビュー → 「ブランチ」→ 基準ブランチ
- 右クリック → 「ブランチの作成...」
- ブランチ名を入力
- 「ブランチの構成」で「チェックアウト新規ブランチ」のチェックを外す
- 「完了」
リモートへのプッシュ
新しいブランチをリモートリポジトリに送信します。
CLIコマンド:
# 初回プッシュ(追跡ブランチを設定)
git push -u origin feature/new-function
# 2回目以降
git pushEclipse操作手順:
- プロジェクト右クリック → 「チーム」→「プッシュ・ブランチ...」
- プッシュするブランチ名を確認
- 「次へ」→「完了」
または:
- プロジェクト右クリック → 「チーム」→「リモート」→「プッシュ...」
- リモートリポジトリを選択(通常は
origin) - 「次へ」
- 「ソース ref」で現在のブランチを確認
- 「宛先 ref」で
refs/heads/feature/new-functionを入力 - 「追加」→「次へ」→「完了」
初回プッシュ後は「チーム」→「プッシュ・ブランチ...」で簡単にプッシュできます。
基本的なGit操作フロー
ファイルの変更状態を確認
CLIコマンド:
git statusEclipse操作手順:
プロジェクトエクスプローラーでファイルアイコンを確認:
- >(山括弧):変更されたファイル
- ?(疑問符):未追跡ファイル(新規作成)
- 装飾なし:変更なし
- 管理対象外アイコン:.gitignoreで除外
詳細確認:
- プロジェクト右クリック → 「チーム」→「同期化...」
- 「同期化」ビューが開く
- 「作業ツリー」タブ:未コミットの変更
- 「着信コミット」:プルしていないコミット
- 「発信コミット」:プッシュしていないコミット
ステージングとコミット
CLIコマンド:
# ファイルをステージング
git add src/main/java/com/example/Service.java
# すべてのファイルをステージング
git add .
# コミット
git commit -m "feat: ログイン機能を追加"Eclipse操作手順:
- プロジェクト右クリック → 「チーム」→「コミット...」
- 「Gitステージング」ビューが表示される
- 「ステージされていない変更」:未ステージのファイル一覧
- 「ステージされた変更」:コミット対象のファイル一覧
- コミットしたいファイルを「ステージされた変更」にドラッグ&ドロップ
- または、ファイルの「+」アイコンをクリック
- すべてステージする場合は「++」アイコンをクリック
- 「コミット・メッセージ」欄にメッセージを入力
- 「コミット」ボタンをクリック
コミットと同時にプッシュ:
「コミット」ボタンの右側の「▼」→「コミットおよびプッシュ」を選択
コミットメッセージの書き方
実務では統一されたフォーマットを使うと管理しやすくなります。
type: 変更内容を端的に
詳細な説明(必要に応じて)typeの例:
feat:新機能追加fix:バグ修正docs:ドキュメント変更style:コードスタイル修正(フォーマット、セミコロンなど)refactor:リファクタリングtest:テスト追加・修正chore:ビルドツール、設定ファイルなどの変更
例:
feat: ユーザー登録機能を追加
fix: ログインエラーを修正
docs: READMEのセットアップ手順を更新プル(リモートの変更を取得)
CLIコマンド:
git pull origin developEclipse操作手順:
- プロジェクト右クリック → 「チーム」→「プル」
- 自動的にリモートから最新の変更を取得してマージ
リモートの状態を確認してからプル:
- プロジェクト右クリック → 「チーム」→「リモート」→「フェッチ...」
- リモートリポジトリを選択 → 「完了」
- 「チーム」→「履歴を表示」でコミット履歴を確認
- 問題なければ「チーム」→「プル」
プッシュ(ローカルの変更をリモートに送信)
CLIコマンド:
git push origin developEclipse操作手順:
- プロジェクト右クリック → 「チーム」→「プッシュ・ブランチ...」
- ブランチ名を確認 → 「次へ」→「完了」
または:
「コミット」時に「コミットおよびプッシュ」を選択すれば一度に実行可能
日常的な運用フロー
パターン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-updateEclipse操作手順:
developに切り替え
- プロジェクト右クリック → 「チーム」→「切り替え」→「その他...」
- 「develop」を選択 → 「チェックアウト」
最新化
- プロジェクト右クリック → 「チーム」→「プル」
featureブランチ作成
- プロジェクト右クリック → 「チーム」→「切り替え」→「新規ブランチ...」
- ブランチ名:
feature/major-update - 「ソース」:
developを選択 - 「新規ブランチをチェックアウト」にチェック
- 「完了」
リモートへプッシュ
- プロジェクト右クリック → 「チーム」→「プッシュ・ブランチ...」
- 「次へ」→「完了」
ステップ2:featureブランチで開発作業
CLIコマンド:
# featureブランチで作業
git checkout feature/major-update
# ファイルを編集...
# コミット&プッシュ
git add .
git commit -m "feat: 新機能Aの実装"
git push origin feature/major-updateEclipse操作手順:
featureブランチにいることを確認
- 画面右下のブランチ名表示を確認
- または「チーム」→「切り替え」→「その他...」
開発作業を実施
- コード編集、ファイル追加など
コミット&プッシュ
- プロジェクト右クリック → 「チーム」→「コミット...」
- ファイルをステージング
- コミットメッセージ入力:
feat: 新機能Aの実装 - 「コミットおよびプッシュ」を選択
ステップ3:定期的にdevelopの変更を取り込む
長期的なfeatureブランチでは、週1回程度developの変更をマージして同期を保ちます。
CLIコマンド:
# featureブランチにいることを確認
git checkout feature/major-update
# developの最新を取り込む
git merge develop
# コンフリクトがあれば解決(後述)
# プッシュ
git push origin feature/major-updateEclipse操作手順:
featureブランチで作業中の変更をコミット
- 未コミットの変更があれば先にコミット
developの変更を取り込む
- プロジェクト右クリック → 「チーム」→「マージ...」
- 「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.0Eclipse操作手順:
developにマージ
- 「チーム」→「切り替え」→「develop」
- 「チーム」→「プル」
- 「チーム」→「マージ...」→「feature/major-update」を選択 → 「マージ」
- 「チーム」→「プッシュ・ブランチ...」
mainにマージ
- 「チーム」→「切り替え」→「main」
- 「チーム」→「プル」
- 「チーム」→「マージ...」→「develop」を選択 → 「マージ」
- 「チーム」→「プッシュ・ブランチ...」
タグ付け(任意)
- プロジェクト右クリック → 「チーム」→「詳細」→「タグ...」
- 「タグ名」:
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-bugEclipse操作手順:
mainに切り替えて最新化
- 「チーム」→「切り替え」→「main」
- 「チーム」→「プル」
hotfixブランチ作成
- 「チーム」→「切り替え」→「新規ブランチ...」
- ブランチ名:
hotfix/critical-bug - 「ソース」:
mainを選択 - 「新規ブランチをチェックアウト」にチェック
- 「完了」
リモートへプッシュ
- 「チーム」→「プッシュ・ブランチ...」
ステップ2:バグ修正とコミット
CLIコマンド:
# バグ修正作業...
# コミット&プッシュ
git add .
git commit -m "fix: 本番環境の〇〇エラーを修正"
git push origin hotfix/critical-bugEclipse操作手順:
- バグ修正作業を実施
- 「チーム」→「コミット...」
- コミットメッセージ:
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-bugEclipse操作手順:
mainにマージ
- 「チーム」→「切り替え」→「main」
- 「チーム」→「マージ...」→「hotfix/critical-bug」→ 「マージ」
- 「チーム」→「プッシュ・ブランチ...」
タグ付け
- 「チーム」→「詳細」→「タグ...」
- タグ名:
v1.0.1、メッセージ:緊急修正v1.0.1 - タグをプッシュ
developにマージ
- 「チーム」→「切り替え」→「develop」
- 「チーム」→「マージ...」→「hotfix/critical-bug」→ 「マージ」
- 「チーム」→「プッシュ・ブランチ...」
hotfixブランチ削除
- 「Gitリポジトリー」ビュー → 「ブランチ」→「hotfix/critical-bug」
- 右クリック → 「削除」
- 「リモート・ブランチも削除」にチェック → 「OK」
パターン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-updateEclipse操作手順:
developで修正
- 「チーム」→「切り替え」→「develop」
- 「チーム」→「プル」
- 修正作業
- 「チーム」→「コミット...」→「コミットおよびプッシュ」
mainへマージ
- 「チーム」→「切り替え」→「main」
- 「チーム」→「プル」
- 「チーム」→「マージ...」→「develop」→「マージ」
- 「チーム」→「プッシュ・ブランチ...」
featureへ反映
- 「チーム」→「切り替え」→「feature/major-update」
- 「チーム」→「マージ...」→「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の変更を取り込み"Eclipseでのコンフリクト解決
Eclipse操作手順:
コンフリクト発生時
- マージを実行すると「Result of merging」ダイアログが表示される
- 「OK」をクリック
同期化ビューで確認
- 「チーム」→「同期化...」をクリック
- 「同期化」ビューが開く
- コンフリクトしているファイルには赤い×マークが表示される
マージエディタを開く
- コンフリクトファイルをダブルクリック
- マージエディタが3分割で表示される
- 左側:現在のブランチ(HEAD)の内容
- 右側:マージ元ブランチの内容
- 下側:マージ結果(編集可能)
変更を選択
- 左側の変更を採用:チェックボックスにチェック
- 右側の変更を採用:チェックボックスにチェック
- 両方採用:両方にチェック
- どちらも採用しない:チェックなし
- 手動編集:下側のエディタで直接編集
マージを完了
- すべてのコンフリクトを解決
- ファイル保存(Ctrl+S)
- マージエディタを閉じる
コミット
- プロジェクト右クリック → 「チーム」→「追加」
- 「チーム」→「コミット...」
- コミットメッセージ:
merge: developの変更を取り込み - 「コミット」または「コミットおよびプッシュ」
コンフリクト解決のコツ
- 小まめにマージ:週1回程度developをfeatureにマージすると、コンフリクトが小規模で済む
- コミット粒度を小さく:機能単位でコミットすることで、問題箇所の特定が容易
- コミュニケーション:チームで同じファイルを編集する場合は事前に調整
よくある失敗とリカバリ
失敗1:間違ったブランチで作業してしまった
mainブランチにいるつもりがdevelopで作業していた、というミスです。
まだコミットしていない場合
CLIコマンド:
# 変更を一時退避
git stash
# 正しいブランチに切り替え
git checkout feature/correct-branch
# 変更を復元
git stash popEclipse操作手順:
変更を退避
- プロジェクト右クリック → 「チーム」→「スタッシュの変更...」
- 「スタッシュ」ボタンをクリック
正しいブランチに切り替え
- 「チーム」→「切り替え」→ 正しいブランチ
変更を復元
- 「チーム」→「スタッシュの変更の適用」
- 最新のスタッシュを選択 → 「適用」
すでにコミットしてしまった場合
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-branchEclipse操作手順:
コミット履歴を確認
- 「チーム」→「履歴を表示」
- コミットIDをメモ(例:
abc1234)
正しいブランチに切り替え
- 「チーム」→「切り替え」→ 正しいブランチ
コミットをコピー
- 「チーム」→「詳細」→「Cherry Pick...」
- コミットIDを入力 → 「Cherry Pick」
間違ったブランチのコミットを削除
- 「チーム」→「切り替え」→ 間違ったブランチ
- ローカルのみの場合:
- プロジェクト右クリック → 「チーム」→「リセット...」
- 「HEAD~1」を入力 → 「ハード」を選択 → 「リセット」
- リモートにプッシュ済みの場合:
- 「チーム」→「詳細」→「Revert...」
- コミットIDを入力 → 「Revert」
- 「チーム」→「プッシュ・ブランチ...」
失敗2:プッシュできない(リモートが進んでいる)
他の人がリモートにプッシュした後、自分がプッシュしようとするとエラーになります。
! [rejected] develop -> develop (fetch first)
error: failed to push some refs to 'origin'CLIコマンド:
# リモートの変更を取得してマージ
git pull origin develop
# コンフリクトがあれば解決
# 再度プッシュ
git push origin developEclipse操作手順:
プルを実行
- プロジェクト右クリック → 「チーム」→「プル」
- 自動的にリモートの変更がマージされる
コンフリクトがあれば解決
- 前述のコンフリクト解決手順を実施
プッシュ
- 「チーム」→「プッシュ・ブランチ...」
失敗3:マージ後に問題が発覚
マージは実行したが、テストで問題が見つかった場合です。
CLIコマンド:
# 直前のマージを取り消し
git reset --hard ORIG_HEADEclipse操作手順:
- プロジェクト右クリック → 「チーム」→「リセット...」
- 「ORIG_HEAD」を入力
- 「ハード」を選択
- 「リセット」ボタンをクリック
注意:
- リモートにプッシュ済みの場合は
resetではなくrevertを使用 reset --hardは変更を完全に削除するため慎重に実行
失敗4:コミットメッセージを間違えた
CLIコマンド:
# 直前のコミットメッセージを修正
git commit --amend -m "fix: 正しいコミットメッセージ"
# プッシュ済みの場合は強制プッシュ(注意!)
git push -f origin feature/branchEclipse操作手順:
プッシュ前の場合:
- 「チーム」→「コミット...」
- 「コミット・メッセージの修正」にチェック
- 正しいメッセージを入力
- 「コミット」
プッシュ済みの場合:
Eclipseでは強制プッシュが難しいため、CLIを使用するか、新しいコミットで対応します。
失敗5:特定のファイルを元に戻したい
コミット前にファイルを元の状態に戻したい場合です。
CLIコマンド:
# 特定ファイルを元に戻す
git checkout -- src/main/java/Service.java
# すべてのファイルを元に戻す
git checkout -- .Eclipse操作手順:
- 元に戻したいファイルを右クリック
- 「置換」→「HEADリビジョン」を選択
- 確認ダイアログで「OK」
または:
- 「チーム」→「同期化...」
- 「作業ツリー」タブで対象ファイルを右クリック
- 「置換」→「HEADリビジョン」
便利なGit操作
操作1:コミット履歴の確認
CLIコマンド:
# 簡易表示
git log --oneline
# グラフ表示
git log --graph --oneline --all
# 出力例:
# * abc1234 (HEAD -> develop) feat: 機能追加
# * def5678 (origin/develop) fix: バグ修正
# * ghi9012 (main) chore: 初期設定Eclipse操作手順:
プロジェクト右クリック → 「チーム」→「履歴を表示」
「履歴」ビューが開く
- 上部:コミット一覧(グラフ表示可能)
- 下部:選択したコミットの詳細
- 「変更」タブ:変更されたファイル一覧
- 「Diff」タブ:変更内容の差分表示
グラフ表示の設定
- 「履歴」ビュー右上の「▼」→「グラフの表示」にチェック
特定のファイルの履歴を確認
- ファイル右クリック → 「チーム」→「履歴を表示」
- そのファイルに関連するコミットのみ表示
操作2:変更内容の差分確認
CLIコマンド:
# まだステージングしていない変更
git diff
# ステージング済みの変更
git diff --staged
# ブランチ間の差分
git diff develop..mainEclipse操作手順:
未ステージの変更を確認
- 変更したファイルを右クリック → 「比較」→「ローカル履歴」
ステージ済みの変更を確認
- 「チーム」→「同期化...」
- 「作業ツリー」タブでファイルをダブルクリック
- 差分エディタが開く
ブランチ間の差分
- プロジェクト右クリック → 「比較」→「ブランチ、タグ、または参照」
- 比較元と比較先のブランチを選択
- 「OK」→ 差分が表示される
操作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 clearEclipse操作手順:
変更を退避
- プロジェクト右クリック → 「チーム」→「スタッシュの変更...」
- 「スタッシュ」ボタンをクリック
スタッシュ一覧
- 「Gitリポジトリー」ビュー → リポジトリ展開 → 「スタッシュ済み コミット」
変更を復元
- スタッシュを右クリック → 「スタッシュ変更の適用」
- または「スタッシュ・コミットの適用およびドロップ」(適用後に削除)
スタッシュを削除
- スタッシュを右クリック → 「スタッシュ・コミットの削除」
使用例:
急な障害対応が入り、feature開発を中断してdevelopで修正する場合に便利です。
feature開発中
↓ スタッシュで退避
↓ developに切り替えて障害対応
↓ 完了後、featureに戻る
↓ スタッシュを復元して開発再開操作4:特定のコミットを別ブランチに適用(Cherry-pick)
CLIコマンド:
# コミットハッシュを確認
git log --oneline
# 別ブランチに切り替え
git checkout target-branch
# 特定のコミットを適用
git cherry-pick abc1234Eclipse操作手順:
- 「チーム」→「履歴を表示」
- コピーしたいコミットを右クリック
- 「コミットIDのコピー」でIDをコピー
- 適用先のブランチに切り替え
- 「チーム」→「詳細」→「Cherry Pick...」
- コミットIDを入力 → 「Cherry Pick」
操作5:ブランチの削除
CLIコマンド:
# ローカルブランチを削除
git branch -d feature/old-feature
# まだマージしていないブランチを強制削除
git branch -D feature/old-feature
# リモートブランチを削除
git push origin --delete feature/old-featureEclipse操作手順:
ローカルブランチ削除
- 「Gitリポジトリー」ビュー → 「ブランチ」→ 対象ブランチ
- 右クリック → 「削除」
- 確認ダイアログで「OK」
リモートブランチも削除
- ブランチ削除時に「リモート・ブランチも削除」にチェック
削除できない場合
- まだマージしていないブランチは警告が出る
- 強制削除する場合は「強制削除」にチェック
操作6:特定のコミットに戻る
CLIコマンド:
# コミット履歴を確認
git log --oneline
# 特定のコミットに戻る(変更は保持)
git reset --soft abc1234
# 特定のコミットに戻る(変更も破棄)
git reset --hard abc1234Eclipse操作手順:
- 「チーム」→「履歴を表示」
- 戻りたいコミットを右クリック
- 「リセット」→ リセットタイプを選択
- ソフト:変更はステージング状態で保持
- ミックス:変更は未ステージで保持
- ハード:変更を完全に破棄
- 「リセット」ボタンをクリック
便利なショートカットとビュー設定
よく使うショートカット
Eclipse / Windows / Mac の順に記載します。
- コミット画面を開く:なし(設定可能)
- プル実行:なし(設定可能)
- 履歴表示:なし(設定可能)
- 同期化ビュー:なし(設定可能)
ショートカットの設定方法
- メニューバー → 「ウィンドウ」→「設定」
- 「一般」→「キー」を選択
- 検索欄に「Git」と入力
- 設定したいコマンドを選択(例:「コミット」)
- 「バインディング」欄でキーを入力(例:
Ctrl+Shift+C) - 「適用して閉じる」
便利なビュー配置
推奨レイアウト:
- 左側:プロジェクトエクスプローラー
- 中央:エディタ
- 下部:Gitステージング、履歴、同期化
- 右側:Gitリポジトリー
ビューの追加方法:
- メニューバー → 「ウィンドウ」→「ビューの表示」→「その他...」
- 「Git」フォルダを展開
- 追加したいビューを選択 → 「開く」
まとめ
本記事で学んだこと
- EclipseのGitプラグイン(EGit)の基本操作
- ブランチ戦略(GitFlow)の実践的な運用
- CLIコマンドとGUI操作の対応関係
- よくある失敗パターンとリカバリ方法
- 便利なGit操作とショートカット設定
Git運用のベストプラクティス
- 小まめなコミット:機能単位で細かくコミット
- わかりやすいコミットメッセージ:統一フォーマットを使用
- 定期的な同期:週1回はfeatureにdevelopをマージ
- プッシュ前の確認:差分を確認してから実行
- コンフリクトは早期解決:放置すると複雑化
次のステップ
本記事で基本的なGit操作は理解できたはずです。さらにスキルアップするには:
- GitHubやGitLabのPull Request機能を使ったコードレビュー
- Git Hooksを使った自動化(コミット前のテスト実行など)
- Rebaseを使った履歴の整理
- Submoduleを使った外部ライブラリ管理
EclipseのGit操作に慣れてきたら、CLIコマンドも併用すると、より柔軟な運用が可能になります。
関連記事


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