MRが楽しい

MRやVRについて学習したことを書き残す

TortoiseGitでローカルの特定のコミットを取り消す

本日は TortoiseGit の小ネタ枠です。
TortoiseGitでローカルの特定のコミットを取り消す方法について分からなかったので記事に残します。

TortoiseGitでローカルの特定のコミットを取り消す

例えば以下のテキストファイルの更新を誤ってコミットしてしまい、取り消したい場合です。


TortoiseGit のメニューから[Show Log]を開きます。
現在の状態から戻したいコミットを選択して右クリックから[Reset "(ブランチ名)" to this...]を選択します。

すると選択したコミットに戻す際の設定ダイアログが表示されます。
[Reset Type]の選択によって、それぞれ以下のような変更が発生します。
・Soft:ファイルの変更とインデックス(ステージング)を残して指定のコミットに戻ります。コミットのみが破棄されます。
・Mixed:ファイルの変更を残して指定のコミットに戻ります。インデックス、コミットは破棄されます。
・Hard:ファイルの変更、インデックス、コミットを全て破棄して指定のコミットに戻ります。

ファイルの変更を残してコミットを取り消したい場合は Soft か Mixed を選択して取り消しを実行します。

ファイルの変更はそのままにコミットが取り消されるため、変更ファイルが Modified(変更) 状態に戻りました。

なおインデックス(ステージング)は add などコミット準備の情報を指します。多くの場合 TortoiseGit では Commit 実行の際に確認・変更を行っているはずです。