2011年04月20日(水) [長年日記]
■ [dev][howto] Gitでコミット前のマージを取り消す
% git merge --no-ff --no-commit ブランチ名
でブランチの内容をマージだけした(コミットはしない)後、そのマージを取り消して元の状態に戻したいときは、HEADに戻ればいいので
% git reset --hard HEAD
とすればよい。マージ時に--no-commitオプションを付けずコミットまでした場合は、ORIG_HEADに戻ればいいみたいだけれど、試してないのでよくわからない。
(追記)
resetに--hardを付けるのは、まだコミット前であり、元に戻したいのがワークツリーだから。--hardはワークツリーも含めて元に戻すためのオプション。
- git reset についてもまとめてみる (murankの日記)
の図が分かりやすかったのでメモ。
git resetには --merge, --keep というオプションもあって、これらの意味はよくわからない。マニュアルの後半に表を使った説明があるが、難しくて理解できなかった。