SourceTreeでGit commit を取り消す完全ガイド – GUI操作で安全に戻す方法

git

「コミットを間違えた!でもコマンドは苦手…」

そんなあなたに朗報です。SourceTreeを使えば、マウス操作だけで安全にコミットを取り消せます。

黒い画面(ターミナル)を開く必要はありません。右クリックメニューから選ぶだけ。視覚的に履歴を確認しながら、安心して操作できるのがSourceTreeの最大の魅力です。

この記事では、SourceTreeを使った様々なコミット取り消し方法を、実際の画面操作を交えながら分かりやすく解説していきます。


スポンサーリンク
  1. SourceTreeとは?Git操作を視覚化するツール
    1. SourceTreeの特徴
    2. SourceTreeの画面構成
  2. 基本操作:SourceTreeでコミット状況を確認する
    1. コミット履歴の見方
    2. 作業中の変更を確認
  3. ケース1:コミットメッセージを修正する
    1. 直前のコミットメッセージを変更
    2. 複数のコミットメッセージを一括編集
  4. ケース2:コミットを取り消す(リセット操作)
    1. 方法1:右クリックメニューから「リセット」
    2. 各リセットモードの使い分け
    3. 方法2:ツールバーの「破棄」ボタン
  5. ケース3:プッシュ済みコミットを取り消す(リバート)
    1. 安全な取り消し方法:リバート
    2. 複数のコミットを一度にリバート
  6. ケース4:ファイルを追加し忘れた時の対処
    1. コミットにファイルを追加(Amend)
  7. ケース5:特定のファイルだけ前の状態に戻す
    1. 方法1:ファイルステータスから破棄
    2. 方法2:履歴から特定バージョンを取得
    3. 方法3:ログ/ブレームから復元
  8. ケース6:ブランチを間違えてコミットした
    1. コミットを別ブランチに移動(チェリーピック)
  9. SourceTreeの便利な機能
    1. 1. スタッシュ(一時保存)
    2. 2. インタラクティブリベース
    3. 3. ビジュアルdiff
    4. 4. カスタムアクション
  10. トラブルシューティング
    1. よくある問題と解決法
  11. SourceTreeのショートカットキー
    1. 基本操作
    2. 表示切り替え
  12. ベストプラクティス:安全にSourceTreeを使うコツ
    1. 1. 作業前の確認習慣
    2. 2. ブランチ戦略
    3. 3. コミットメッセージのルール
    4. 4. 定期的なバックアップ
    5. 5. チーム開発での注意点
  13. まとめ:SourceTreeで快適なGit生活を

SourceTreeとは?Git操作を視覚化するツール

SourceTreeの特徴

SourceTreeは、Atlassian社が提供する無料のGit GUIクライアントです。

メリット:

  • 完全無料(商用利用も可)
  • 日本語対応
  • 視覚的に分かりやすい
  • 複雑な操作も簡単
  • Windows/Mac両対応

こんな人におすすめ:

  • コマンドライン操作が苦手
  • 履歴を視覚的に確認したい
  • 安全にGit操作したい
  • チーム開発をしている

SourceTreeの画面構成

┌─────────────────────────────────────┐
│  ツールバー(プル、プッシュ、コミット等)  │
├──────────┬──────────────────────────┤
│          │                          │
│ サイド   │    履歴グラフ            │
│ バー     │  (コミット履歴)         │
│          │                          │
│ ・ワーク │                          │
│   スペース│                          │
│ ・履歴   ├──────────────────────────┤
│ ・検索   │                          │
│ ・ブランチ│  詳細パネル              │
│          │ (変更ファイル一覧)       │
│          │                          │
└──────────┴──────────────────────────┘

基本操作:SourceTreeでコミット状況を確認する

コミット履歴の見方

履歴タブの見方:

  1. 左サイドバーの「履歴」をクリック
  2. 中央パネルにコミット履歴がグラフで表示
  3. 各行が1つのコミットを表す

履歴グラフの読み方:

● ← 最新のコミット(HEAD)
│
● ← 1つ前のコミット
│
● ← 2つ前のコミット
│

コミット情報の確認:

  • 青い丸:ローカルのコミット
  • 緑の丸:リモートと同期済み
  • タグアイコン:タグ付きコミット
  • ブランチ名:各ブランチの位置

作業中の変更を確認

  1. 「ファイルステータス」タブをクリック
  2. 変更されたファイル一覧が表示
  3. ファイルをクリックすると差分が表示

ファイルの状態アイコン:

  • 📝 修正(Modified)
  • 新規(Added)
  • 削除(Deleted)
  • 追跡されていない(Untracked)
  • ⚠️ コンフリクト(Conflict)

ケース1:コミットメッセージを修正する

直前のコミットメッセージを変更

手順:

  1. 履歴タブを開く
  2. 最新のコミット(一番上)を右クリック
  3. **「コミットメッセージを編集…」**を選択
  4. 新しいメッセージを入力
  5. **「OK」**をクリック

⚠️ 注意:

  • プッシュ済みの場合は「強制プッシュ」が必要
  • チーム開発では避けるべき

複数のコミットメッセージを一括編集

インタラクティブリベースを使う方法:

  1. 編集したい最も古いコミットの1つ前を右クリック
  2. **「○○の子を対話形式でリベース…」**を選択
  3. 開いたダイアログで操作:
    • メッセージ変更したいコミット:**「Edit Message」**を選択
    • そのまま:**「Pick」**のまま
  4. **「メッセージを編集」**をクリック
  5. 各コミットのメッセージを編集
  6. **「OK」**で確定

ケース2:コミットを取り消す(リセット操作)

方法1:右クリックメニューから「リセット」

手順:

  1. 履歴タブで戻りたいコミットを選択
  2. 右クリックしてメニューを表示
  3. **「このコミットまで現在のブランチをリセット」**を選択
  4. リセットモードを選択:

リセットモードの選択画面:

┌─────────────────────────────────┐
│ リセットのタイプを選択           │
├─────────────────────────────────┤
│ ○ Soft - ファイルの変更を維持   │
│   (ステージングエリアに残る)    │
│                                 │
│ ○ Mixed - 全ての変更を維持      │
│   (作業ツリーに残る)           │
│                                 │
│ ○ Hard - 全ての変更を破棄       │
│   (完全に削除)⚠️危険           │
└─────────────────────────────────┘

各リセットモードの使い分け

Soft リセット(ソフト)

  • 使用場面:コミットをやり直したい
  • 結果:変更はステージングエリアに残る
  • 次の操作:そのまま再コミット可能

Mixed リセット(ミックス)

  • 使用場面:ファイルの選択からやり直したい
  • 結果:変更は作業ツリーに残る(未ステージ)
  • 次の操作:必要なファイルを選んでステージング

Hard リセット(ハード)

  • 使用場面:完全になかったことにしたい
  • 結果:すべての変更が削除される
  • ⚠️警告:復元不可能な場合がある

方法2:ツールバーの「破棄」ボタン

ローカルの変更を破棄:

  1. 「ファイルステータス」タブを開く
  2. 破棄したいファイルを選択
  3. ツールバーの**「破棄」ボタン**をクリック
  4. 確認ダイアログで**「破棄」**を選択

ケース3:プッシュ済みコミットを取り消す(リバート)

安全な取り消し方法:リバート

リバートの特徴:

  • 取り消し用の新しいコミットを作成
  • 履歴が残るため安全
  • チーム開発でも問題なし

手順:

  1. 履歴タブで取り消したいコミットを選択
  2. 右クリックメニューを開く
  3. **「コミットを打ち消し…」**を選択
  4. 確認ダイアログで内容を確認
  5. **「Yes」**をクリック
  6. 自動的に打ち消しコミットが作成される

結果の例:

● Revert "機能Aを追加"  ← 打ち消しコミット(新規作成)
│
● 機能Aを追加           ← 元のコミット(残る)
│

複数のコミットを一度にリバート

  1. Shiftキーを押しながら複数のコミットを選択
  2. 右クリックして**「コミットを打ち消し…」**
  3. 順番に打ち消しコミットが作成される

ケース4:ファイルを追加し忘れた時の対処

コミットにファイルを追加(Amend)

手順:

  1. 「ファイルステータス」タブを開く
  2. 追加し忘れたファイルをステージング
  3. 「コミット」ボタンをクリック
  4. **「最後のコミットを上書き(Amend)」**にチェック
  5. メッセージを確認(変更も可)
  6. **「コミット」**をクリック

Amendオプションの場所:

┌─────────────────────────────────┐
│ コミットメッセージ               │
│ ┌─────────────────────────────┐ │
│ │                             │ │
│ └─────────────────────────────┘ │
│                                 │
│ ☑ 最後のコミットを上書き(Amend) │ ← ここにチェック
│                                 │
│ [コミット]  [キャンセル]         │
└─────────────────────────────────┘

ケース5:特定のファイルだけ前の状態に戻す

方法1:ファイルステータスから破棄

  1. 「ファイルステータス」タブを開く
  2. 戻したいファイルを右クリック
  3. **「破棄」**を選択
  4. 確認ダイアログで**「破棄」**

方法2:履歴から特定バージョンを取得

  1. 履歴タブで目的のコミットを選択
  2. 下部パネルでファイル一覧を確認
  3. 復元したいファイルを右クリック
  4. **「作業コピーへファイルをリセット」**を選択

方法3:ログ/ブレームから復元

  1. ファイルを選択して右クリック
  2. **「ログを表示」または「ブレーム」**を選択
  3. 復元したいバージョンを選択
  4. **「このバージョンに戻す」**をクリック

ケース6:ブランチを間違えてコミットした

コミットを別ブランチに移動(チェリーピック)

手順:

  1. 正しいブランチにチェックアウト
  2. 履歴タブで移動したいコミットを探す
  3. コミットを右クリック
  4. **「チェリーピック」**を選択
  5. 確認して**「OK」**

元のブランチから削除:

  1. 間違えたブランチに戻る
  2. 該当コミットの1つ前までリセット(Mixed)

SourceTreeの便利な機能

1. スタッシュ(一時保存)

作業を一時的に退避:

  1. ツールバーの**「スタッシュ」ボタン**をクリック
  2. メッセージを入力(任意)
  3. **「OK」**で保存

スタッシュの復元:

  1. 左サイドバーの**「スタッシュ」**を展開
  2. 復元したいスタッシュを右クリック
  3. **「スタッシュを適用」**を選択

2. インタラクティブリベース

コミットの整理:

  1. 整理したい範囲の最も古いコミットの親を右クリック
  2. **「○○の子を対話形式でリベース…」**を選択
  3. 各コミットの操作を選択:
    • Pick:そのまま使用
    • Squash:前のコミットと結合
    • Edit:コミット内容を編集
    • Delete:コミットを削除

3. ビジュアルdiff

変更内容の確認:

  • 緑の行:追加された行
  • 赤い行:削除された行
  • 黄色い行:変更された行

外部diffツールの設定:

  1. 「ツール」→「オプション」
  2. 「Diff」タブ
  3. 外部diffツールを選択(WinMerge、Beyond Compare等)

4. カスタムアクション

よく使うコマンドを登録:

  1. 「ツール」→「オプション」
  2. 「カスタムアクション」タブ
  3. **「追加」**をクリック
  4. コマンドを設定:

例:ログを整形して表示

メニューキャプション: コミットログ(整形版)
スクリプト: git log --pretty=format:"%h - %an, %ar : %s" -10

トラブルシューティング

よくある問題と解決法

問題1:リセットが選択できない

原因:

  • 未コミットの変更がある
  • プッシュ済みのコミット

解決方法:

  1. 変更をコミットまたはスタッシュ
  2. リバートを使用(プッシュ済みの場合)

問題2:プッシュできない

エラーメッセージ:

! [rejected] main -> main (non-fast-forward)

解決方法:

  1. **「プル」**で最新を取得
  2. コンフリクトを解決
  3. 再度プッシュ

強制プッシュ(最終手段):

  1. プッシュボタンの横の矢印をクリック
  2. **「強制プッシュ」**を選択
  3. ⚠️ チーム開発では要相談

問題3:コンフリクトが発生

解決手順:

  1. コンフリクトファイルが**「!」マーク**で表示
  2. ファイルを右クリック
  3. 「競合を解決」→解決方法を選択:
    • 自分の変更を使用
    • 相手の変更を使用
    • 外部マージツールを起動

問題4:文字化けする

解決方法:

  1. 「ツール」→「オプション」
  2. 「全般」タブ
  3. **「デフォルトの文字エンコーディング」**を「UTF-8」に設定

SourceTreeのショートカットキー

基本操作

操作WindowsMac
コミットCtrl+Shift+CCmd+Shift+C
プルCtrl+Shift+LCmd+Shift+L
プッシュCtrl+Shift+PCmd+Shift+P
スタッシュCtrl+Shift+SCmd+Shift+S
フェッチCtrl+Shift+FCmd+Shift+F
ブランチ作成Ctrl+Shift+BCmd+Shift+B
検索Ctrl+FCmd+F
更新F5Cmd+R

表示切り替え

操作WindowsMac
ファイルステータスCtrl+1Cmd+1
履歴Ctrl+2Cmd+2
検索Ctrl+3Cmd+3
フルスクリーンF11Cmd+Ctrl+F

ベストプラクティス:安全にSourceTreeを使うコツ

1. 作業前の確認習慣

毎回確認すること:

  • ✅ 現在のブランチ(画面上部に表示)
  • ✅ 未コミットの変更(ファイルステータス)
  • ✅ リモートとの差分(フェッチ後に確認)

2. ブランチ戦略

推奨ルール:

main(本番)
  ├── develop(開発)
  │     ├── feature/機能A
  │     ├── feature/機能B
  │     └── bugfix/修正A
  └── hotfix/緊急修正

SourceTreeでの管理:

  • ブランチに色を付ける
  • お気に入りに登録
  • 定期的に不要ブランチを削除

3. コミットメッセージのルール

テンプレート設定:

  1. 「ツール」→「オプション」
  2. 「コミット」タブ
  3. コミットテンプレートを設定

例:

[種別] 概要

詳細説明

Issue #番号

4. 定期的なバックアップ

ローカルバックアップ:

  • 重要な作業前にタグを付ける
  • ブランチをコピーして保存
  • 定期的にリモートにプッシュ

5. チーム開発での注意点

ルール:

  • ❌ mainブランチへの直接コミットは避ける
  • ❌ force pushは原則禁止
  • ⭕ プルリクエストを活用
  • ⭕ こまめにフェッチして最新化

まとめ:SourceTreeで快適なGit生活を

SourceTreeを使えば、コマンドを覚えなくても、視覚的にGitを操作できます。

SourceTreeの強み:

直感的な操作

  • 右クリックメニューで大抵の操作が可能
  • グラフで履歴が一目瞭然
  • ドラッグ&ドロップでファイル操作

安全性が高い

  • 操作前に確認ダイアログ
  • 取り消し操作も簡単
  • 履歴が視覚的に確認できる

高度な機能も簡単

  • インタラクティブリベース
  • チェリーピック
  • スタッシュ管理

カスタマイズ性

  • 外部ツールとの連携
  • カスタムアクション
  • ショートカットキー

次のステップ:

  1. 基本操作をマスター
    • コミット、プッシュ、プル
    • ブランチの作成と切り替え
  2. 取り消し操作を練習
    • テストリポジトリで試す
    • 各リセットモードの違いを体験
  3. チーム開発に挑戦
    • プルリクエストの活用
    • コンフリクト解決の練習
  4. 高度な機能を習得
    • リベース、チェリーピック
    • GitFlowの導入

SourceTreeは、Git初心者からプロまで幅広く使える優れたツールです。この記事を参考に、安心してGit操作を楽しんでください!

Happy SourceTree Life! 🌲


関連リソース:

コメント

タイトルとURLをコピーしました