間違えてgit pushしてしまった際に取り消す方法を記載します。
前提
直近の「コミット : fumu」を間違えてpushしてしまったので取り消したいとします。
% git log --oneline -n 3
d036366 (HEAD -> main, origin/main, origin/HEAD) コミット : fumu
e341362 コミット : fuga
3a1f47a コミット: hoge
取り消す方法
下記コマンドを実行すると、ローカルの直近コミットが取り消されます。
git reset --soft HEAD^
git log を実行すると「 コミット : fumu」が取り消されています。
git log --oneline -n 3
e341362 (HEAD -> main) コミット : fuga
3a1f47a コミット: hoge
あとはその情報をpushすれば、直近でpushした情報が取り消されます。
その際は-f
オプションを利用してpush を強制する必要があります。
git push -f
これでpushの取り消しは完了です。
git reset のオプションについて
今回はgit reset --soft
を利用しましたが、状況によっては下記のオプションが使用できます。
--soft
:commitを取り消すオプション。
--mixed
:commitとaddを消すオプション。
--hard
:commitとaddを消し、さらにcommitとaddしたファイルも消すオプション。
直前のgit reset を取り消す
下記コマンドを実行します。
git reset --hard ORIG_HEAD