TortoiseGit でマージを行った場合、コンフリクトがない場合でも自動でコミットされるかどうかは、設定による ので注意が必要です。
デフォルトの動作
TortoiseGit のデフォルト設定では、コンフリクトがない場合、自動でコミットされる 仕様になっています。
つまり、マージ後に手動で git commit せずとも、マージコミットが作成される。
コミットをスキップする方法
- マージ時に「No Fast Forward」にチェックを入れる
TortoiseGit のマージダイアログで、
「No Fast Forward」 のチェックを外しておくと、自動コミットを回避できる。 - 「Commit merge immediately」を無効化
設定変更でデフォルト動作を変更可能TortoiseGit → Settings → Merge
「Commit merge immediately if no conflicts(コンフリクトなしなら即コミット)」のチェックを外す
これで、コンフリクトなしのマージ時でも コミットせずにステージング状態 で止めることができる
マージ後に「やっぱり戻したい」場合
もし誤って自動コミットされても、直後ならリセットで戻せる:
git reset --merge ORIG_HEAD
または、
git reset --hard HEAD~1 # 直前のコミットを取り消す
※ --hard を使うと変更が消えるので注意!
まとめ
デフォルト設定では、コンフリクトがなければ自動コミットされる
設定で「Commit merge immediately」をオフにすれば、コミットをスキップ可能
手動で「No Fast Forward」オプションを使えば、マージ後に確認できる
誤ってコミットしたら git reset で戻せる
TortoiseGit でマージする際は、「Commit merge immediately」の設定を確認 しておくとよいですね。