# Git備忘録 ## 特定のコミットまで戻したい **色々変更してコミットをしたが,やっぱ元に戻したいときがある**
まずは,コミットのログを見る(gitファイル[.git]があるディレクトリで作業する) ```bash & git log commit asdf99g0a78a0ggfa80gfa0889er8fgfgd00gffg (HEAD -> main) Author: xxxxxxxxxxxx Date: Wed May 31 17:02:37 2023 +0900 fixed image name commit gaf9gf76afsdg87dfg86af6g7dfag5ag4dfhh5fd Author: xxxxxxxxxxxx Date: Wed May 31 13:41:45 2023 +0900 test commit commit gfgg56hgs56745fdh7087afdh4fa3hddah7dah64 Author: xxxxxxxxxxxx Date: Wed May 31 12:13:54 2023 +0900 Initial commit ``` 戻りたい地点のコミットハッシュをコピー 今回は最初の`Initial commit`の状態にする > `git reset --hard [コミットハッシュ]`コマンドを使用.これは,指定したコミットハッシュに戻す(指定より新しいコミットを削除する) > `--hard`は指定した地点の内容に戻す(上位層の変更内容は消える) > `--soft`は直近までの変更内容は残るが,コミットは消える ```bash $ git reset --hard gfgg56hgs56745fdh7087afdh4fa3hddah7dah64 $ git log # 上位層のコミットが消えているか確認 ``` リモートリポジトリにも反映する   通常の`push`を行うと,リモートとローカルでコミット履歴が異なるためエラーが出る   `-f`オプションで強制的にローカルの状態をリモートに反映する ```bash & git push -f origin main ``` 以上で変更履歴を戻すことができた