gitで過去の変更を取り消したいときgit reset --hardは危険。コミットしてない変更があると完全に中身を消去してしまう。(これのせいで半日を無駄にした)
コミットログを汚して許容される環境ではgit revertで打ち消すべき
revertしただけだと、消したファイルはワーキングディレクトリから消えたままなのでそのcheckoutすべき

git revert <commit>
git checkout .