過去に戻ると「戻った地点 ~ 現在」までのcommitの内容は全て「なかったことになる」ので注意。
例
戻る前 : A-B-C-D-E-F
戻った後 : A-B-C
※現在がFのときにCまで戻るとD-E-Fは「なかったことになる」
1人で開発する分にはいくらでも巻き戻して良いと思うが、複数人で開発する場合は「戻った履歴」もきちんと残るような別の方法の方が良いかもしれない。
過去にpushしたリモートリポジトリの内容に戻る方法
コマンド
# 過去のcommitの履歴を表示して、戻りたい地点のID(先頭の7文字)をメモする
$ git log --pretty=oneline --abbrev-commit
d9a71ff (HEAD -> master) コミットメッセージhoge
b22b583 コミットメッセージfuga
ea5d21f コミットメッセージpiyo ← 今回はここに戻りたい
e5355be コミットメッセージfoo
###
# ローカルでコミット履歴を確認できない場合は、GitHub上で確認
# https://github.com/user_name/project_name/commits/
###
# 戻る(IDを指定)
$ git reset --hard ea5d21f
# 各ファイルが指定した地点のコミットの内容に戻っているかどうかを確認する
# 確認用の作業(やらなくても良い)
# project_rootにテスト用のファイル"test.txt"を作ってadd & commit
$ git add test.txt
$ git commit -m "commit test"
# 最新のpush内容と相違があるせいでコンフリクトが発生するので-fで強制的に上書き
$ git push -f origin master