最近AIに頼ってばっかりで毎回同じことを聞いてしまうことがあるのでメモしておく。
状況
不要なコミットをpushしてしまった。ローカルだけでなくリモートの履歴からも取り除きたい。
手順
1. ローカルで巻き戻す。
直前の1件を取り消す。
git reset --hard HEAD~1
直前の3件を取り消す。
git reset --hard HEAD~3
2. リモートを上書きする。
git push --force-with-lease origin <ブランチ名>
| オプション | 動作 |
|---|---|
| --force | ローカルの内容でリモートを必ず上書きする。 |
| --force-with-lease | リモートがローカルと一致している時だけpushする。他人が先にpushしていれば失敗するので、誤って上書きしにくい。 |