
・SourceTreeでコミット・マージを取り消すことできる?
こんな疑問にお答えします。
SourceTreeで作業をしているとき、間違えてコミットしてしまい取り消したい時ありますよね。
もしくは間違えてマージしてしまったり。
実はそれ簡単に取り消すことが可能です。

すぐにできるよ!
ということで、この記事では「SourceTreeでコミット・マージを取り消す方法」について解説していきます!
・SourceTreeでコミット・マージを取り消す方法
・モードについての解説
・取り消したというコミットを生成する方法
目次
【解決】SourceTreeでコミット・マージを取り消す方法【reset】
そんなコミットを取り消す手順こちら↓
- 取り消したいコミットの1つ手前を選択
- 「〜をこのコミットまで戻す」をクリック
- モードを選択して取り消し完了
順に解説してきます。
まず取り消したいコミットの1つ手前を選択します。
今回でいうと「これはミスコミットです」を取り消したいとして、その手前の「テキストの修正」を選択。

選択したコミットを右クリックして、「〜をこのコミットまで戻す」をクリックしましょう。

すると下記画像のようになるので、モードを選択してOKをクリックすれば取り消し完了です。

- Soft
- Mixed
- Hard
このモードによって取り消す内容が変わるので簡単に解説しますね。
Softモードは「コミットされてない状態」のことです。


つまりステージしたファイルにいる状態となります。
作業内容はそのまま残ります。
Mixedモードは「コミット+ステージングされてない状態」のことです。


つまりステージしたファイルにはおさず、作業ツリー状態となります。
作業内容はそのまま残ります。
Hardモードは「作業内容自体が取り消される状態」のことです。
つまり「コミット+ステージング+作業内容」のすべてが取り消されるということです。

危険な操作のため下記画像のように警告がでます。

そのためこのモードを使うときは注意しましょう。
【SourceTree】取り消したというコミットを新たに生成する方法【revert】
間違えたコミットを取り消すには「reset」を使えばOKです。
ただ「reset」を使うと、コミットを取り消したというログは残りません。
場合によっては、取り消したという履歴を残すコミットも生成したいことがあるかと。
そんなときに使えるのが「revert」です。
またこの「revert」は、過去の指定したコミットのみ取り消して、新たなコミットを生成するという使い方も可能です。
そんな「revert」の手順がこちら↓
- 取り消したいコミットを選択して「コミット適用前に戻す」
- 取り消しの確認を「OK」
- 「Revert ~」というコミットが生成される
順に解説してきます。
まず取り消したいコミットを選択して、右クリックします。
すると項目がでるので「コミット適用前に戻す」を選択しましょう。

下記がでるので「OK」をクリック。

これで選択したコミットが打ち消しされました。
下記画像のように「Revert~」といった打ち消した履歴を残すコミットが生成されます。

見ての通り指定したコミット自体は削除されておらず、そのまま残るのが特徴です。
また今回は最新のコミットを選択しましたが、過去のコミットを選択して「コミット適用前に戻す」ことも可能です。
そうすると過去の特定コミットだけ打ち消しつつ、打ち消したという履歴を新たにコミットしてくれます。
他にもSourcetreeで使えるものをまとめていますので参考にどうぞ↓

【解決】SourceTreeでコミット・マージを取り消す方法【reset/revert】:まとめ
- 「〜をこのコミットまで戻す」で取り消し可能(reset)
- モードによって取り消し内容が変わる
- 履歴を残したい、過去コミットのみ取り消したいなら「Revert」をする

SourceTreeでコミット・マージを取り消したい時はためしてみてね!