こんにちは、@0yanです。
運用中のアプリのコード修正時、直前のgit addを取り消したかったのですが、某記事に書いてあった「はじめてのgit addを取り消す」という内容を**「最近行ったaddの1回目を取り消す」**という意味だと勘違いし、git rm --cached -r .を実行後、マスターブランチにgit pushするという大失態を犯しました。git initした後のgit addを取り消すという意味だったらしく、GitHubのマスターブランチは空っぽに・・・。
本記事はそれを解決したという記事です。こんなしょうもないことをする人はいないと思いますが、万が一、私と同じことをしてしまった方がいた時に役立つよう投稿しておきます。あぁ、恥ずかしい。
解決手順
- GitHubのリモートリポジトリで元に戻したいコミットのコミットIDを調べる
- ローカルリポジトリで元に戻したいコミット以降のコミット(=やらかしたコミット)を、
git reset --hard [1で調べたコミットID]によって削除 -
git push -f origin masterでリモートリポジトリに強制プッシュ
補足
git resetはあまり推奨されない方法らしく、本当はgit revertを使った方が良いそうです。詳しくは以下の記事等をご参照ください。