Git で作業中に、誤って push してしまったことがある人は多いのではないでしょうか。そんなときには、以下の方法で push を取り消すことができます。
履歴を残したまま取り消す方法
この方法は、取り消したいコミットを打ち消す新しいコミットを作成します。
git revert <コミット SHA-1>
例えば、コミット SHA-1 が d41d8cd98f00b204e9800998ecf8427e のコミットを取り消したい場合は、以下のコマンドを実行します。
git revert d41d8cd98f00b204e9800998ecf8427e
このコマンドを実行すると、以下のコミットが作成されます。
commit 222222222222222222222222222222222222222
Author: <あなたの名前> <あなたのメールアドレス>
Date: 2023-09-30 00:26:30 +0000
Revert "コミットの内容"
This reverts commit d41d8cd98f00b204e9800998ecf8427e.
このコミットを push することで、ローカルの変更が元に戻ります。
履歴を残さず取り消す方法
この方法は、ローカルの変更を元に戻し、push したコミットを削除します。
git reset --hard HEAD~1
git push --force
このコマンドを実行すると、ローカルの変更が元に戻り、push したコミットが削除されます。
注意点
履歴を残さない方法で取り消した場合、ローカルの変更を元に戻すことができます。しかし、push したコミットは削除されるため、他のユーザーのローカルには変更が残ります。
履歴を残す方法で取り消した場合、ローカルの変更を元に戻すことができます。また、push したコミットも残るため、他のユーザーのローカルにも変更が残ります。
どちらの方法で取り消すかは、状況に合わせて選択してください。
まとめ
Git push を取り消す方法は、大きく分けて2つあります。どちらの方法で取り消すかは、履歴を残すか残さないかによって選択してください。