EclipseでGitを使いこなす完全ガイド|GUI操作とCLIコマンドを徹底比較

Development
スポンサーリンク
スポンサーリンク
  1. はじめに
    1. 本記事の対象読者
    2. 前提知識
  2. Eclipseで使用するGitプラグイン「EGit」とは
    1. EGitの特徴
  3. Git運用の基本:ブランチ戦略
    1. ブランチの種類と役割
    2. 運用フローの全体像
  4. EclipseのGit設定と初期セットアップ
    1. Gitパースペクティブの表示
    2. リポジトリビューの確認
    3. ユーザー情報の設定
  5. ブランチ操作の基本
    1. ブランチ一覧の確認
    2. 既存ブランチへの切り替え
    3. 新しいブランチの作成
    4. リモートへのプッシュ
  6. 基本的なGit操作フロー
    1. ファイルの変更状態を確認
    2. ステージングとコミット
    3. コミットメッセージの書き方
    4. プル(リモートの変更を取得)
    5. プッシュ(ローカルの変更をリモートに送信)
  7. 日常的な運用フロー
    1. パターン1:通常の機能開発(feature/*)
    2. パターン2:本番環境の緊急バグ修正(hotfix/*)
    3. パターン3:並行して複数の機能を開発
  8. コンフリクト(競合)の解決
    1. コンフリクトが発生する状況
    2. CLIでのコンフリクト解決
    3. Eclipseでのコンフリクト解決
    4. コンフリクト解決のコツ
  9. よくある失敗とリカバリ
    1. 失敗1:間違ったブランチで作業してしまった
    2. 失敗2:プッシュできない(リモートが進んでいる)
    3. 失敗3:マージ後に問題が発覚
    4. 失敗4:コミットメッセージを間違えた
    5. 失敗5:特定のファイルを元に戻したい
  10. 便利なGit操作
    1. 操作1:コミット履歴の確認
    2. 操作2:変更内容の差分確認
    3. 操作3:スタッシュ(変更の一時退避)
    4. 操作4:特定のコミットを別ブランチに適用(Cherry-pick)
    5. 操作5:ブランチの削除
    6. 操作6:特定のコミットに戻る
  11. 便利なショートカットとビュー設定
    1. よく使うショートカット
    2. ショートカットの設定方法
    3. 便利なビュー配置
  12. まとめ
    1. 本記事で学んだこと
    2. Git運用のベストプラクティス
    3. 次のステップ
  13. 関連記事
  14. 参考リンク

はじめに

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操作手順:

  1. メニューバー → 「ウィンドウ」→「パースペクティブ」→「パースペクティブを開く」→「その他...」
  2. 「Git」を選択 → 「開く」
  3. 画面右上に「Git」タブが追加される

リポジトリビューの確認

Eclipse操作手順:

  1. メニューバー → 「ウィンドウ」→「ビューの表示」→「その他...」
  2. 「Git」フォルダを展開 → 「Gitリポジトリー」を選択 → 「開く」
  3. 「Gitリポジトリー」ビューにプロジェクトのリポジトリが表示される

このビューでブランチ一覧、リモート設定、タグなどを確認できます。

ユーザー情報の設定

初回のみ、Gitのユーザー情報を設定する必要があります。

CLIコマンド:

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

Eclipse操作手順:

  1. メニューバー → 「ウィンドウ」→「設定」
  2. 「チーム」→「Git」→「構成」を選択
  3. 「ユーザー設定」タブを選択
  4. 「エントリーの追加...」をクリック
  5. キー:user.name、値:あなたの名前 → 「OK」
  6. 同様にuser.emailも追加

ブランチ操作の基本

ブランチ一覧の確認

現在のリポジトリにどんなブランチがあるか確認します。

CLIコマンド:

# ローカルブランチ一覧
git branch

# 出力例:
#   main
# * develop  ← *が現在のブランチ
#   feature/login

# リモートブランチも含めて表示
git branch -a

# 出力例:
# * develop
#   main
#   remotes/origin/develop
#   remotes/origin/main
#   remotes/origin/feature/login

Eclipse操作手順:

  1. プロジェクト右クリック → 「チーム」→「切り替え」→「その他...」
  2. ブランチ一覧が表示される
    • 「ローカル」フォルダ:ローカルブランチ
    • 「リモート・トラッキング」フォルダ:リモートブランチ
  3. 現在のブランチには「✓」マークが付く

または:

「Gitリポジトリー」ビュー → リポジトリ展開 → 「ブランチ」を展開

既存ブランチへの切り替え

別のブランチに切り替える操作です。

CLIコマンド:

# ブランチ切り替え
git checkout develop

# または(Git 2.23以降)
git switch develop

Eclipse操作手順:

  1. プロジェクト右クリック → 「チーム」→「切り替え」→「その他...」
  2. 切り替えたいブランチを選択
  3. 「チェックアウト」ボタンをクリック

または:

  1. 「Gitリポジトリー」ビュー → 「ブランチ」→ 目的のブランチ
  2. 右クリック → 「チェックアウト」

注意点:

  • 未コミットの変更がある場合、切り替え前にコミットまたはスタッシュが必要
  • ファイルに変更がある状態で切り替えると警告が表示される

新しいブランチの作成

CLIコマンド:

# ブランチを作成して切り替え
git checkout -b feature/new-function

# または(Git 2.23以降)
git switch -c feature/new-function

# ブランチ作成のみ(切り替えない)
git branch feature/new-function

Eclipse操作手順:

  1. プロジェクト右クリック → 「チーム」→「切り替え」→「新規ブランチ...」
  2. ブランチ名を入力:feature/new-function
  3. 「ソース」で基準となるブランチを選択(通常はdevelop
  4. 「新規ブランチをチェックアウト」にチェック ← これで作成と同時に切り替え
  5. 「完了」をクリック

ブランチ作成のみ(切り替えない):

  1. 「Gitリポジトリー」ビュー → 「ブランチ」→ 基準ブランチ
  2. 右クリック → 「ブランチの作成...」
  3. ブランチ名を入力
  4. 「ブランチの構成」で「チェックアウト新規ブランチ」のチェックを外す
  5. 「完了」

リモートへのプッシュ

新しいブランチをリモートリポジトリに送信します。

CLIコマンド:

# 初回プッシュ(追跡ブランチを設定)
git push -u origin feature/new-function

# 2回目以降
git push

Eclipse操作手順:

  1. プロジェクト右クリック → 「チーム」→「プッシュ・ブランチ...」
  2. プッシュするブランチ名を確認
  3. 「次へ」→「完了」

または:

  1. プロジェクト右クリック → 「チーム」→「リモート」→「プッシュ...」
  2. リモートリポジトリを選択(通常はorigin
  3. 「次へ」
  4. 「ソース ref」で現在のブランチを確認
  5. 「宛先 ref」でrefs/heads/feature/new-functionを入力
  6. 「追加」→「次へ」→「完了」

初回プッシュ後は「チーム」→「プッシュ・ブランチ...」で簡単にプッシュできます。

基本的なGit操作フロー

ファイルの変更状態を確認

CLIコマンド:

git status

Eclipse操作手順:

プロジェクトエクスプローラーでファイルアイコンを確認:

  • >(山括弧):変更されたファイル
  • ?(疑問符):未追跡ファイル(新規作成)
  • 装飾なし:変更なし
  • 管理対象外アイコン:.gitignoreで除外

詳細確認:

  1. プロジェクト右クリック → 「チーム」→「同期化...」
  2. 「同期化」ビューが開く
    • 「作業ツリー」タブ:未コミットの変更
    • 「着信コミット」:プルしていないコミット
    • 「発信コミット」:プッシュしていないコミット

ステージングとコミット

CLIコマンド:

# ファイルをステージング
git add src/main/java/com/example/Service.java

# すべてのファイルをステージング
git add .

# コミット
git commit -m "feat: ログイン機能を追加"

Eclipse操作手順:

  1. プロジェクト右クリック → 「チーム」→「コミット...」
  2. 「Gitステージング」ビューが表示される
    • 「ステージされていない変更」:未ステージのファイル一覧
    • 「ステージされた変更」:コミット対象のファイル一覧
  3. コミットしたいファイルを「ステージされた変更」にドラッグ&ドロップ
    • または、ファイルの「+」アイコンをクリック
    • すべてステージする場合は「++」アイコンをクリック
  4. 「コミット・メッセージ」欄にメッセージを入力
  5. 「コミット」ボタンをクリック

コミットと同時にプッシュ:

「コミット」ボタンの右側の「▼」→「コミットおよびプッシュ」を選択

コミットメッセージの書き方

実務では統一されたフォーマットを使うと管理しやすくなります。

type: 変更内容を端的に

詳細な説明(必要に応じて)

typeの例:

  • feat:新機能追加
  • fix:バグ修正
  • docs:ドキュメント変更
  • style:コードスタイル修正(フォーマット、セミコロンなど)
  • refactor:リファクタリング
  • test:テスト追加・修正
  • chore:ビルドツール、設定ファイルなどの変更

例:

feat: ユーザー登録機能を追加
fix: ログインエラーを修正
docs: READMEのセットアップ手順を更新

プル(リモートの変更を取得)

CLIコマンド:

git pull origin develop

Eclipse操作手順:

  1. プロジェクト右クリック → 「チーム」→「プル」
  2. 自動的にリモートから最新の変更を取得してマージ

リモートの状態を確認してからプル:

  1. プロジェクト右クリック → 「チーム」→「リモート」→「フェッチ...」
  2. リモートリポジトリを選択 → 「完了」
  3. 「チーム」→「履歴を表示」でコミット履歴を確認
  4. 問題なければ「チーム」→「プル」

プッシュ(ローカルの変更をリモートに送信)

CLIコマンド:

git push origin develop

Eclipse操作手順:

  1. プロジェクト右クリック → 「チーム」→「プッシュ・ブランチ...」
  2. ブランチ名を確認 → 「次へ」→「完了」

または:

「コミット」時に「コミットおよびプッシュ」を選択すれば一度に実行可能

日常的な運用フロー

パターン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-update

Eclipse操作手順:

  1. developに切り替え

    • プロジェクト右クリック → 「チーム」→「切り替え」→「その他...」
    • 「develop」を選択 → 「チェックアウト」
  2. 最新化

    • プロジェクト右クリック → 「チーム」→「プル」
  3. featureブランチ作成

    • プロジェクト右クリック → 「チーム」→「切り替え」→「新規ブランチ...」
    • ブランチ名:feature/major-update
    • 「ソース」:developを選択
    • 「新規ブランチをチェックアウト」にチェック
    • 「完了」
  4. リモートへプッシュ

    • プロジェクト右クリック → 「チーム」→「プッシュ・ブランチ...」
    • 「次へ」→「完了」

ステップ2:featureブランチで開発作業

CLIコマンド:

# featureブランチで作業
git checkout feature/major-update

# ファイルを編集...

# コミット&プッシュ
git add .
git commit -m "feat: 新機能Aの実装"
git push origin feature/major-update

Eclipse操作手順:

  1. featureブランチにいることを確認

    • 画面右下のブランチ名表示を確認
    • または「チーム」→「切り替え」→「その他...」
  2. 開発作業を実施

    • コード編集、ファイル追加など
  3. コミット&プッシュ

    • プロジェクト右クリック → 「チーム」→「コミット...」
    • ファイルをステージング
    • コミットメッセージ入力:feat: 新機能Aの実装
    • 「コミットおよびプッシュ」を選択

ステップ3:定期的にdevelopの変更を取り込む

長期的なfeatureブランチでは、週1回程度developの変更をマージして同期を保ちます。

CLIコマンド:

# featureブランチにいることを確認
git checkout feature/major-update

# developの最新を取り込む
git merge develop

# コンフリクトがあれば解決(後述)

# プッシュ
git push origin feature/major-update

Eclipse操作手順:

  1. featureブランチで作業中の変更をコミット

    • 未コミットの変更があれば先にコミット
  2. developの変更を取り込む

    • プロジェクト右クリック → 「チーム」→「マージ...」
    • 「develop」を選択
    • 「マージ」ボタンをクリック
  3. コンフリクトが発生した場合

    • 後述の「コンフリクト解決」を参照
  4. プッシュ

    • プロジェクト右クリック → 「チーム」→「プッシュ・ブランチ...」

ステップ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.0

Eclipse操作手順:

  1. developにマージ

    • 「チーム」→「切り替え」→「develop」
    • 「チーム」→「プル」
    • 「チーム」→「マージ...」→「feature/major-update」を選択 → 「マージ」
    • 「チーム」→「プッシュ・ブランチ...」
  2. mainにマージ

    • 「チーム」→「切り替え」→「main」
    • 「チーム」→「プル」
    • 「チーム」→「マージ...」→「develop」を選択 → 「マージ」
    • 「チーム」→「プッシュ・ブランチ...」
  3. タグ付け(任意)

    • プロジェクト右クリック → 「チーム」→「詳細」→「タグ...」
    • 「タグ名」: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-bug

Eclipse操作手順:

  1. mainに切り替えて最新化

    • 「チーム」→「切り替え」→「main」
    • 「チーム」→「プル」
  2. hotfixブランチ作成

    • 「チーム」→「切り替え」→「新規ブランチ...」
    • ブランチ名:hotfix/critical-bug
    • 「ソース」:mainを選択
    • 「新規ブランチをチェックアウト」にチェック
    • 「完了」
  3. リモートへプッシュ

    • 「チーム」→「プッシュ・ブランチ...」

ステップ2:バグ修正とコミット

CLIコマンド:

# バグ修正作業...

# コミット&プッシュ
git add .
git commit -m "fix: 本番環境の〇〇エラーを修正"
git push origin hotfix/critical-bug

Eclipse操作手順:

  1. バグ修正作業を実施
  2. 「チーム」→「コミット...」
  3. コミットメッセージ:fix: 本番環境の〇〇エラーを修正
  4. 「コミットおよびプッシュ」

ステップ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-bug

Eclipse操作手順:

  1. mainにマージ

    • 「チーム」→「切り替え」→「main」
    • 「チーム」→「マージ...」→「hotfix/critical-bug」→ 「マージ」
    • 「チーム」→「プッシュ・ブランチ...」
  2. タグ付け

    • 「チーム」→「詳細」→「タグ...」
    • タグ名:v1.0.1、メッセージ:緊急修正v1.0.1
    • タグをプッシュ
  3. developにマージ

    • 「チーム」→「切り替え」→「develop」
    • 「チーム」→「マージ...」→「hotfix/critical-bug」→ 「マージ」
    • 「チーム」→「プッシュ・ブランチ...」
  4. 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-update

Eclipse操作手順:

  1. developで修正

    • 「チーム」→「切り替え」→「develop」
    • 「チーム」→「プル」
    • 修正作業
    • 「チーム」→「コミット...」→「コミットおよびプッシュ」
  2. mainへマージ

    • 「チーム」→「切り替え」→「main」
    • 「チーム」→「プル」
    • 「チーム」→「マージ...」→「develop」→「マージ」
    • 「チーム」→「プッシュ・ブランチ...」
  3. 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操作手順:

  1. コンフリクト発生時

    • マージを実行すると「Result of merging」ダイアログが表示される
    • 「OK」をクリック
  2. 同期化ビューで確認

    • 「チーム」→「同期化...」をクリック
    • 「同期化」ビューが開く
    • コンフリクトしているファイルには赤い×マークが表示される
  3. マージエディタを開く

    • コンフリクトファイルをダブルクリック
    • マージエディタが3分割で表示される
      • 左側:現在のブランチ(HEAD)の内容
      • 右側:マージ元ブランチの内容
      • 下側:マージ結果(編集可能)
  4. 変更を選択

    • 左側の変更を採用:チェックボックスにチェック
    • 右側の変更を採用:チェックボックスにチェック
    • 両方採用:両方にチェック
    • どちらも採用しない:チェックなし
    • 手動編集:下側のエディタで直接編集
  5. マージを完了

    • すべてのコンフリクトを解決
    • ファイル保存(Ctrl+S)
    • マージエディタを閉じる
  6. コミット

    • プロジェクト右クリック → 「チーム」→「追加」
    • 「チーム」→「コミット...」
    • コミットメッセージ:merge: developの変更を取り込み
    • 「コミット」または「コミットおよびプッシュ」

コンフリクト解決のコツ

  • 小まめにマージ:週1回程度developをfeatureにマージすると、コンフリクトが小規模で済む
  • コミット粒度を小さく:機能単位でコミットすることで、問題箇所の特定が容易
  • コミュニケーション:チームで同じファイルを編集する場合は事前に調整

よくある失敗とリカバリ

失敗1:間違ったブランチで作業してしまった

mainブランチにいるつもりがdevelopで作業していた、というミスです。

まだコミットしていない場合

CLIコマンド:

# 変更を一時退避
git stash

# 正しいブランチに切り替え
git checkout feature/correct-branch

# 変更を復元
git stash pop

Eclipse操作手順:

  1. 変更を退避

    • プロジェクト右クリック → 「チーム」→「スタッシュの変更...」
    • 「スタッシュ」ボタンをクリック
  2. 正しいブランチに切り替え

    • 「チーム」→「切り替え」→ 正しいブランチ
  3. 変更を復元

    • 「チーム」→「スタッシュの変更の適用」
    • 最新のスタッシュを選択 → 「適用」

すでにコミットしてしまった場合

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-branch

Eclipse操作手順:

  1. コミット履歴を確認

    • 「チーム」→「履歴を表示」
    • コミットIDをメモ(例:abc1234
  2. 正しいブランチに切り替え

    • 「チーム」→「切り替え」→ 正しいブランチ
  3. コミットをコピー

    • 「チーム」→「詳細」→「Cherry Pick...」
    • コミットIDを入力 → 「Cherry Pick」
  4. 間違ったブランチのコミットを削除

    • 「チーム」→「切り替え」→ 間違ったブランチ
    • ローカルのみの場合:
      • プロジェクト右クリック → 「チーム」→「リセット...」
      • 「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 develop

Eclipse操作手順:

  1. プルを実行

    • プロジェクト右クリック → 「チーム」→「プル」
    • 自動的にリモートの変更がマージされる
  2. コンフリクトがあれば解決

    • 前述のコンフリクト解決手順を実施
  3. プッシュ

    • 「チーム」→「プッシュ・ブランチ...」

失敗3:マージ後に問題が発覚

マージは実行したが、テストで問題が見つかった場合です。

CLIコマンド:

# 直前のマージを取り消し
git reset --hard ORIG_HEAD

Eclipse操作手順:

  1. プロジェクト右クリック → 「チーム」→「リセット...」
  2. 「ORIG_HEAD」を入力
  3. 「ハード」を選択
  4. 「リセット」ボタンをクリック

注意:

  • リモートにプッシュ済みの場合はresetではなくrevertを使用
  • reset --hardは変更を完全に削除するため慎重に実行

失敗4:コミットメッセージを間違えた

CLIコマンド:

# 直前のコミットメッセージを修正
git commit --amend -m "fix: 正しいコミットメッセージ"

# プッシュ済みの場合は強制プッシュ(注意!)
git push -f origin feature/branch

Eclipse操作手順:

プッシュ前の場合:

  1. 「チーム」→「コミット...」
  2. 「コミット・メッセージの修正」にチェック
  3. 正しいメッセージを入力
  4. 「コミット」

プッシュ済みの場合:

Eclipseでは強制プッシュが難しいため、CLIを使用するか、新しいコミットで対応します。

失敗5:特定のファイルを元に戻したい

コミット前にファイルを元の状態に戻したい場合です。

CLIコマンド:

# 特定ファイルを元に戻す
git checkout -- src/main/java/Service.java

# すべてのファイルを元に戻す
git checkout -- .

Eclipse操作手順:

  1. 元に戻したいファイルを右クリック
  2. 「置換」→「HEADリビジョン」を選択
  3. 確認ダイアログで「OK」

または:

  1. 「チーム」→「同期化...」
  2. 「作業ツリー」タブで対象ファイルを右クリック
  3. 「置換」→「HEADリビジョン」

便利なGit操作

操作1:コミット履歴の確認

CLIコマンド:

# 簡易表示
git log --oneline

# グラフ表示
git log --graph --oneline --all

# 出力例:
# * abc1234 (HEAD -> develop) feat: 機能追加
# * def5678 (origin/develop) fix: バグ修正
# * ghi9012 (main) chore: 初期設定

Eclipse操作手順:

  1. プロジェクト右クリック → 「チーム」→「履歴を表示」

  2. 「履歴」ビューが開く

    • 上部:コミット一覧(グラフ表示可能)
    • 下部:選択したコミットの詳細
      • 「変更」タブ:変更されたファイル一覧
      • 「Diff」タブ:変更内容の差分表示
  3. グラフ表示の設定

    • 「履歴」ビュー右上の「▼」→「グラフの表示」にチェック
  4. 特定のファイルの履歴を確認

    • ファイル右クリック → 「チーム」→「履歴を表示」
    • そのファイルに関連するコミットのみ表示

操作2:変更内容の差分確認

CLIコマンド:

# まだステージングしていない変更
git diff

# ステージング済みの変更
git diff --staged

# ブランチ間の差分
git diff develop..main

Eclipse操作手順:

  1. 未ステージの変更を確認

    • 変更したファイルを右クリック → 「比較」→「ローカル履歴」
  2. ステージ済みの変更を確認

    • 「チーム」→「同期化...」
    • 「作業ツリー」タブでファイルをダブルクリック
    • 差分エディタが開く
  3. ブランチ間の差分

    • プロジェクト右クリック → 「比較」→「ブランチ、タグ、または参照」
    • 比較元と比較先のブランチを選択
    • 「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 clear

Eclipse操作手順:

  1. 変更を退避

    • プロジェクト右クリック → 「チーム」→「スタッシュの変更...」
    • 「スタッシュ」ボタンをクリック
  2. スタッシュ一覧

    • 「Gitリポジトリー」ビュー → リポジトリ展開 → 「スタッシュ済み コミット」
  3. 変更を復元

    • スタッシュを右クリック → 「スタッシュ変更の適用」
    • または「スタッシュ・コミットの適用およびドロップ」(適用後に削除)
  4. スタッシュを削除

    • スタッシュを右クリック → 「スタッシュ・コミットの削除」

使用例:

急な障害対応が入り、feature開発を中断してdevelopで修正する場合に便利です。

feature開発中
↓ スタッシュで退避
↓ developに切り替えて障害対応
↓ 完了後、featureに戻る
↓ スタッシュを復元して開発再開

操作4:特定のコミットを別ブランチに適用(Cherry-pick)

CLIコマンド:

# コミットハッシュを確認
git log --oneline

# 別ブランチに切り替え
git checkout target-branch

# 特定のコミットを適用
git cherry-pick abc1234

Eclipse操作手順:

  1. 「チーム」→「履歴を表示」
  2. コピーしたいコミットを右クリック
  3. 「コミットIDのコピー」でIDをコピー
  4. 適用先のブランチに切り替え
  5. 「チーム」→「詳細」→「Cherry Pick...」
  6. コミットIDを入力 → 「Cherry Pick」

操作5:ブランチの削除

CLIコマンド:

# ローカルブランチを削除
git branch -d feature/old-feature

# まだマージしていないブランチを強制削除
git branch -D feature/old-feature

# リモートブランチを削除
git push origin --delete feature/old-feature

Eclipse操作手順:

  1. ローカルブランチ削除

    • 「Gitリポジトリー」ビュー → 「ブランチ」→ 対象ブランチ
    • 右クリック → 「削除」
    • 確認ダイアログで「OK」
  2. リモートブランチも削除

    • ブランチ削除時に「リモート・ブランチも削除」にチェック
  3. 削除できない場合

    • まだマージしていないブランチは警告が出る
    • 強制削除する場合は「強制削除」にチェック

操作6:特定のコミットに戻る

CLIコマンド:

# コミット履歴を確認
git log --oneline

# 特定のコミットに戻る(変更は保持)
git reset --soft abc1234

# 特定のコミットに戻る(変更も破棄)
git reset --hard abc1234

Eclipse操作手順:

  1. 「チーム」→「履歴を表示」
  2. 戻りたいコミットを右クリック
  3. 「リセット」→ リセットタイプを選択
    • ソフト:変更はステージング状態で保持
    • ミックス:変更は未ステージで保持
    • ハード:変更を完全に破棄
  4. 「リセット」ボタンをクリック

便利なショートカットとビュー設定

よく使うショートカット

Eclipse / Windows / Mac の順に記載します。

  • コミット画面を開く:なし(設定可能)
  • プル実行:なし(設定可能)
  • 履歴表示:なし(設定可能)
  • 同期化ビュー:なし(設定可能)

ショートカットの設定方法

  1. メニューバー → 「ウィンドウ」→「設定」
  2. 「一般」→「キー」を選択
  3. 検索欄に「Git」と入力
  4. 設定したいコマンドを選択(例:「コミット」)
  5. 「バインディング」欄でキーを入力(例:Ctrl+Shift+C
  6. 「適用して閉じる」

便利なビュー配置

推奨レイアウト:

  1. 左側:プロジェクトエクスプローラー
  2. 中央:エディタ
  3. 下部:Gitステージング、履歴、同期化
  4. 右側:Gitリポジトリー

ビューの追加方法:

  1. メニューバー → 「ウィンドウ」→「ビューの表示」→「その他...」
  2. 「Git」フォルダを展開
  3. 追加したいビューを選択 → 「開く」

まとめ

本記事で学んだこと

  • EclipseのGitプラグイン(EGit)の基本操作
  • ブランチ戦略(GitFlow)の実践的な運用
  • CLIコマンドとGUI操作の対応関係
  • よくある失敗パターンとリカバリ方法
  • 便利なGit操作とショートカット設定

Git運用のベストプラクティス

  1. 小まめなコミット:機能単位で細かくコミット
  2. わかりやすいコミットメッセージ:統一フォーマットを使用
  3. 定期的な同期:週1回はfeatureにdevelopをマージ
  4. プッシュ前の確認:差分を確認してから実行
  5. コンフリクトは早期解決:放置すると複雑化

次のステップ

本記事で基本的なGit操作は理解できたはずです。さらにスキルアップするには:

  • GitHubやGitLabのPull Request機能を使ったコードレビュー
  • Git Hooksを使った自動化(コミット前のテスト実行など)
  • Rebaseを使った履歴の整理
  • Submoduleを使った外部ライブラリ管理

EclipseのGit操作に慣れてきたら、CLIコマンドも併用すると、より柔軟な運用が可能になります。

関連記事

【保存版】Git実務ガイド|ブランチ戦略から失敗時のリカバリまで完全網羅
はじめにGitは強力なバージョン管理ツールですが、使い方を間違えると大変なことになります。この記事では、実務で使えるブランチ戦略から、よくある失敗とそのリカバリ方法まで、完全網羅します。対象読者:Gitの基本は分かるが、実務での使い方に不安...
VSCodeでGitを使いこなす完全ガイド|GUI操作とCLIコマンドを徹底比較
はじめにVSCodeでアプリケーション開発をしている方の多くが、Gitによるバージョン管理を導入しています。しかし、「CLIコマンドならわかるけど、VSCodeのGUI操作がよくわからない」「どのメニューから操作すればいいのか迷う」といった...

参考リンク

実務でGitを使いこなして、効率的な開発を進めていきましょう。

コメント