TortoiseGitでローカルコミットをリセット(取り消し)する方法について、初心者の方でも迷わないよう手順をまとめました。

Pushする前のローカルコミットを取り消したい場合の方法です。

Gitの「リセット」にはいくつか種類がありますが、主に「作業内容は残したいのか」「完全にコミット前の状態に戻したいのか」によって使い分けます。

1. コミットをリセットする基本手順

まずは、リセット画面を開くまでの共通手順です。

  • 対象のプロジェクトフォルダを右クリックします。
  • [TortoiseGit][ログを表示] を選択します。
  • ログ一覧から、「戻したい地点(リセット先)」のコミットを右クリックします。
    注意:リセットしたいコミットそのものではなく、その「一つ前」のコミットを選択するのが一般的です。
  • [「(ブランチ名)」をここにリセット…] を選択します。

2. リセット方法(モード)の選び方

リセット画面の下部にある「リセットの種類」から、目的に合わせてモードを選択します。

A. Soft (ソフト)

  • 状態: コミットだけが取り消され、変更したファイル内容はそのまま残ります。
  • 用途: 「コミットメッセージを間違えた」「複数のコミットを一つにまとめたい」場合に最適です。
  • 結果: ファイルは「ステージング(Index)」された状態になります。

B. Mixed (ミックス) ※デフォルト

  • 状態: コミットが取り消され、ステージングも解除されますが、ファイルの内容は変わりません。
  • 用途: 「一旦コミットしたけど、もう少し修正を加えてからやり直したい」場合に適しています。
  • 結果: ファイルは「変更あり(未ステージング)」の状態になります。

C. Hard (ハード) 【注意!】

  • 状態: 指定したコミット以降の変更を、すべて完全に破棄します。
  • 用途: 「作業内容がめちゃくちゃになったので、完全に以前の状態まで巻き戻したい」場合に使います。
  • 結果: 未コミットの作業内容はすべて消えるため、実行前に保存が必要か確認してください。

3. どの場合にどれを使う?クイック比較表

やりたいこと推奨モードファイル内容
メッセージだけ直して再コミットしたいSoft維持される
一部のファイルを修正してからやり直したいMixed維持される
作業をすべて捨てて過去の状態に戻したいHard削除される

💡知っておくと便利なポイント

  • 直前のコミットメッセージ修正だけなら: リセットを使わなくても、次のコミット時に「コミット」画面で [直前のコミットを修正 (Amend Last Commit)] にチェックを入れるだけで修正可能です。
  • リモートにプッシュ済みの場合は注意: すでに GitHub などのサーバーに Push してしまったコミットをリセットして再 Push すると、他のメンバーの環境と整合性が取れなくなる(コンフリクトの原因になる)ため、自分だけのブランチでない限りは慎重に行いましょう。

タグ: