先日、作業するブランチを間違えてしまいました。
作業が完了し、addとcommitをして、pushする直前に気づきました。
その時の対処方法です。
git commit の取り消し
まずはcommit の取り消しをします。
git reset --soft HEAD^
こちらのコマンドで直前に行ったcommitを取り消すことができます。
git add の取り消し
続いてgit add の取り消しをします。
git reset HEAD
こちらで直前に行ったaddを取り消すことができます。
これら2つのコマンドを実行することで、表題のaddとcommitの取り消しができます。
以下で補足します。
HEAD
今自分が作業している場所を示すポインタのことです。
HEAD^
は「一つ前のコミット」を表します。
reset
特定の時点までファイルを巻き戻します。
3つのオプションがあります。
--soft
HEADの位置のみ巻き戻す
例:git reset --soft HEAD^
→直前のコミットを消す
--mixed
HEADの位置、インデックスを巻き戻す
オプションなしでも同じ結果になる
例:git reset HEAD
→インデックスの変更(addしたもの)を消す
--hard
HEADの位置、インデックス、作業ディレクトリを巻き戻す
例:git reset --hard HEAD^
→直前のコミットまですべて消す