「コミットを間違えた!でもコマンドは苦手…」
そんなあなたに朗報です。SourceTreeを使えば、マウス操作だけで安全にコミットを取り消せます。
黒い画面(ターミナル)を開く必要はありません。右クリックメニューから選ぶだけ。視覚的に履歴を確認しながら、安心して操作できるのがSourceTreeの最大の魅力です。
この記事では、SourceTreeを使った様々なコミット取り消し方法を、実際の画面操作を交えながら分かりやすく解説していきます。
SourceTreeとは?Git操作を視覚化するツール

SourceTreeの特徴
SourceTreeは、Atlassian社が提供する無料のGit GUIクライアントです。
メリット:
- ✅ 完全無料(商用利用も可)
- ✅ 日本語対応
- ✅ 視覚的に分かりやすい
- ✅ 複雑な操作も簡単
- ✅ Windows/Mac両対応
こんな人におすすめ:
- コマンドライン操作が苦手
- 履歴を視覚的に確認したい
- 安全にGit操作したい
- チーム開発をしている
SourceTreeの画面構成
┌─────────────────────────────────────┐
│ ツールバー(プル、プッシュ、コミット等) │
├──────────┬──────────────────────────┤
│ │ │
│ サイド │ 履歴グラフ │
│ バー │ (コミット履歴) │
│ │ │
│ ・ワーク │ │
│ スペース│ │
│ ・履歴 ├──────────────────────────┤
│ ・検索 │ │
│ ・ブランチ│ 詳細パネル │
│ │ (変更ファイル一覧) │
│ │ │
└──────────┴──────────────────────────┘
基本操作:SourceTreeでコミット状況を確認する
コミット履歴の見方
履歴タブの見方:
- 左サイドバーの「履歴」をクリック
- 中央パネルにコミット履歴がグラフで表示
- 各行が1つのコミットを表す
履歴グラフの読み方:
● ← 最新のコミット(HEAD)
│
● ← 1つ前のコミット
│
● ← 2つ前のコミット
│
コミット情報の確認:
- 青い丸:ローカルのコミット
- 緑の丸:リモートと同期済み
- タグアイコン:タグ付きコミット
- ブランチ名:各ブランチの位置
作業中の変更を確認
- 「ファイルステータス」タブをクリック
- 変更されたファイル一覧が表示
- ファイルをクリックすると差分が表示
ファイルの状態アイコン:
- 📝 修正(Modified)
- ➕ 新規(Added)
- ➖ 削除(Deleted)
- ❓ 追跡されていない(Untracked)
- ⚠️ コンフリクト(Conflict)
ケース1:コミットメッセージを修正する
直前のコミットメッセージを変更
手順:
- 履歴タブを開く
- 最新のコミット(一番上)を右クリック
- **「コミットメッセージを編集…」**を選択
- 新しいメッセージを入力
- **「OK」**をクリック
⚠️ 注意:
- プッシュ済みの場合は「強制プッシュ」が必要
- チーム開発では避けるべき
複数のコミットメッセージを一括編集
インタラクティブリベースを使う方法:
- 編集したい最も古いコミットの1つ前を右クリック
- **「○○の子を対話形式でリベース…」**を選択
- 開いたダイアログで操作:
- メッセージ変更したいコミット:**「Edit Message」**を選択
- そのまま:**「Pick」**のまま
- **「メッセージを編集」**をクリック
- 各コミットのメッセージを編集
- **「OK」**で確定
ケース2:コミットを取り消す(リセット操作)
方法1:右クリックメニューから「リセット」
手順:
- 履歴タブで戻りたいコミットを選択
- 右クリックしてメニューを表示
- **「このコミットまで現在のブランチをリセット」**を選択
- リセットモードを選択:
リセットモードの選択画面:
┌─────────────────────────────────┐
│ リセットのタイプを選択 │
├─────────────────────────────────┤
│ ○ Soft - ファイルの変更を維持 │
│ (ステージングエリアに残る) │
│ │
│ ○ Mixed - 全ての変更を維持 │
│ (作業ツリーに残る) │
│ │
│ ○ Hard - 全ての変更を破棄 │
│ (完全に削除)⚠️危険 │
└─────────────────────────────────┘
各リセットモードの使い分け
Soft リセット(ソフト)
- 使用場面:コミットをやり直したい
- 結果:変更はステージングエリアに残る
- 次の操作:そのまま再コミット可能
Mixed リセット(ミックス)
- 使用場面:ファイルの選択からやり直したい
- 結果:変更は作業ツリーに残る(未ステージ)
- 次の操作:必要なファイルを選んでステージング
Hard リセット(ハード)
- 使用場面:完全になかったことにしたい
- 結果:すべての変更が削除される
- ⚠️警告:復元不可能な場合がある
方法2:ツールバーの「破棄」ボタン
ローカルの変更を破棄:
- 「ファイルステータス」タブを開く
- 破棄したいファイルを選択
- ツールバーの**「破棄」ボタン**をクリック
- 確認ダイアログで**「破棄」**を選択
ケース3:プッシュ済みコミットを取り消す(リバート)
安全な取り消し方法:リバート
リバートの特徴:
- 取り消し用の新しいコミットを作成
- 履歴が残るため安全
- チーム開発でも問題なし
手順:
- 履歴タブで取り消したいコミットを選択
- 右クリックメニューを開く
- **「コミットを打ち消し…」**を選択
- 確認ダイアログで内容を確認
- **「Yes」**をクリック
- 自動的に打ち消しコミットが作成される
結果の例:
● Revert "機能Aを追加" ← 打ち消しコミット(新規作成)
│
● 機能Aを追加 ← 元のコミット(残る)
│
複数のコミットを一度にリバート
- Shiftキーを押しながら複数のコミットを選択
- 右クリックして**「コミットを打ち消し…」**
- 順番に打ち消しコミットが作成される
ケース4:ファイルを追加し忘れた時の対処
コミットにファイルを追加(Amend)
手順:
- 「ファイルステータス」タブを開く
- 追加し忘れたファイルをステージング
- 「コミット」ボタンをクリック
- **「最後のコミットを上書き(Amend)」**にチェック
- メッセージを確認(変更も可)
- **「コミット」**をクリック
Amendオプションの場所:
┌─────────────────────────────────┐
│ コミットメッセージ │
│ ┌─────────────────────────────┐ │
│ │ │ │
│ └─────────────────────────────┘ │
│ │
│ ☑ 最後のコミットを上書き(Amend) │ ← ここにチェック
│ │
│ [コミット] [キャンセル] │
└─────────────────────────────────┘
ケース5:特定のファイルだけ前の状態に戻す
方法1:ファイルステータスから破棄
- 「ファイルステータス」タブを開く
- 戻したいファイルを右クリック
- **「破棄」**を選択
- 確認ダイアログで**「破棄」**
方法2:履歴から特定バージョンを取得
- 履歴タブで目的のコミットを選択
- 下部パネルでファイル一覧を確認
- 復元したいファイルを右クリック
- **「作業コピーへファイルをリセット」**を選択
方法3:ログ/ブレームから復元
- ファイルを選択して右クリック
- **「ログを表示」または「ブレーム」**を選択
- 復元したいバージョンを選択
- **「このバージョンに戻す」**をクリック
ケース6:ブランチを間違えてコミットした

コミットを別ブランチに移動(チェリーピック)
手順:
- 正しいブランチにチェックアウト
- 履歴タブで移動したいコミットを探す
- コミットを右クリック
- **「チェリーピック」**を選択
- 確認して**「OK」**
元のブランチから削除:
- 間違えたブランチに戻る
- 該当コミットの1つ前までリセット(Mixed)
SourceTreeの便利な機能
1. スタッシュ(一時保存)
作業を一時的に退避:
- ツールバーの**「スタッシュ」ボタン**をクリック
- メッセージを入力(任意)
- **「OK」**で保存
スタッシュの復元:
- 左サイドバーの**「スタッシュ」**を展開
- 復元したいスタッシュを右クリック
- **「スタッシュを適用」**を選択
2. インタラクティブリベース
コミットの整理:
- 整理したい範囲の最も古いコミットの親を右クリック
- **「○○の子を対話形式でリベース…」**を選択
- 各コミットの操作を選択:
- Pick:そのまま使用
- Squash:前のコミットと結合
- Edit:コミット内容を編集
- Delete:コミットを削除
3. ビジュアルdiff
変更内容の確認:
- 緑の行:追加された行
- 赤い行:削除された行
- 黄色い行:変更された行
外部diffツールの設定:
- 「ツール」→「オプション」
- 「Diff」タブ
- 外部diffツールを選択(WinMerge、Beyond Compare等)
4. カスタムアクション
よく使うコマンドを登録:
- 「ツール」→「オプション」
- 「カスタムアクション」タブ
- **「追加」**をクリック
- コマンドを設定:
例:ログを整形して表示
メニューキャプション: コミットログ(整形版)
スクリプト: git log --pretty=format:"%h - %an, %ar : %s" -10
トラブルシューティング
よくある問題と解決法
問題1:リセットが選択できない
原因:
- 未コミットの変更がある
- プッシュ済みのコミット
解決方法:
- 変更をコミットまたはスタッシュ
- リバートを使用(プッシュ済みの場合)
問題2:プッシュできない
エラーメッセージ:
! [rejected] main -> main (non-fast-forward)
解決方法:
- **「プル」**で最新を取得
- コンフリクトを解決
- 再度プッシュ
強制プッシュ(最終手段):
- プッシュボタンの横の矢印をクリック
- **「強制プッシュ」**を選択
- ⚠️ チーム開発では要相談
問題3:コンフリクトが発生
解決手順:
- コンフリクトファイルが**「!」マーク**で表示
- ファイルを右クリック
- 「競合を解決」→解決方法を選択:
- 自分の変更を使用
- 相手の変更を使用
- 外部マージツールを起動
問題4:文字化けする
解決方法:
- 「ツール」→「オプション」
- 「全般」タブ
- **「デフォルトの文字エンコーディング」**を「UTF-8」に設定
SourceTreeのショートカットキー
基本操作
操作 | Windows | Mac |
---|---|---|
コミット | Ctrl+Shift+C | Cmd+Shift+C |
プル | Ctrl+Shift+L | Cmd+Shift+L |
プッシュ | Ctrl+Shift+P | Cmd+Shift+P |
スタッシュ | Ctrl+Shift+S | Cmd+Shift+S |
フェッチ | Ctrl+Shift+F | Cmd+Shift+F |
ブランチ作成 | Ctrl+Shift+B | Cmd+Shift+B |
検索 | Ctrl+F | Cmd+F |
更新 | F5 | Cmd+R |
表示切り替え
操作 | Windows | Mac |
---|---|---|
ファイルステータス | Ctrl+1 | Cmd+1 |
履歴 | Ctrl+2 | Cmd+2 |
検索 | Ctrl+3 | Cmd+3 |
フルスクリーン | F11 | Cmd+Ctrl+F |
ベストプラクティス:安全にSourceTreeを使うコツ
1. 作業前の確認習慣
毎回確認すること:
- ✅ 現在のブランチ(画面上部に表示)
- ✅ 未コミットの変更(ファイルステータス)
- ✅ リモートとの差分(フェッチ後に確認)
2. ブランチ戦略
推奨ルール:
main(本番)
├── develop(開発)
│ ├── feature/機能A
│ ├── feature/機能B
│ └── bugfix/修正A
└── hotfix/緊急修正
SourceTreeでの管理:
- ブランチに色を付ける
- お気に入りに登録
- 定期的に不要ブランチを削除
3. コミットメッセージのルール
テンプレート設定:
- 「ツール」→「オプション」
- 「コミット」タブ
- コミットテンプレートを設定
例:
[種別] 概要
詳細説明
Issue #番号
4. 定期的なバックアップ
ローカルバックアップ:
- 重要な作業前にタグを付ける
- ブランチをコピーして保存
- 定期的にリモートにプッシュ
5. チーム開発での注意点
ルール:
- ❌ mainブランチへの直接コミットは避ける
- ❌ force pushは原則禁止
- ⭕ プルリクエストを活用
- ⭕ こまめにフェッチして最新化
まとめ:SourceTreeで快適なGit生活を
SourceTreeを使えば、コマンドを覚えなくても、視覚的にGitを操作できます。
SourceTreeの強み:
✅ 直感的な操作
- 右クリックメニューで大抵の操作が可能
- グラフで履歴が一目瞭然
- ドラッグ&ドロップでファイル操作
✅ 安全性が高い
- 操作前に確認ダイアログ
- 取り消し操作も簡単
- 履歴が視覚的に確認できる
✅ 高度な機能も簡単
- インタラクティブリベース
- チェリーピック
- スタッシュ管理
✅ カスタマイズ性
- 外部ツールとの連携
- カスタムアクション
- ショートカットキー
次のステップ:
- 基本操作をマスター
- コミット、プッシュ、プル
- ブランチの作成と切り替え
- 取り消し操作を練習
- テストリポジトリで試す
- 各リセットモードの違いを体験
- チーム開発に挑戦
- プルリクエストの活用
- コンフリクト解決の練習
- 高度な機能を習得
- リベース、チェリーピック
- GitFlowの導入
SourceTreeは、Git初心者からプロまで幅広く使える優れたツールです。この記事を参考に、安心してGit操作を楽しんでください!
Happy SourceTree Life! 🌲
関連リソース:
コメント