Git備忘録#

特定のコミットまで戻したい#

色々変更してコミットをしたが,やっぱ元に戻したいときがある

まずは,コミットのログを見る(gitファイル[.git]があるディレクトリで作業する)

& git log
commit asdf99g0a78a0ggfa80gfa0889er8fgfgd00gffg (HEAD -> main)
Author: xxxxxxxxxxxx <xxxxxxxxxxxx@xxxxxxxxxxxx>
Date:   Wed May 31 17:02:37 2023 +0900

    fixed image name

commit gaf9gf76afsdg87dfg86af6g7dfag5ag4dfhh5fd
Author: xxxxxxxxxxxx <xxxxxxxxxxxx@xxxxxxxxxxxx>
Date:   Wed May 31 13:41:45 2023 +0900

    test commit

commit gfgg56hgs56745fdh7087afdh4fa3hddah7dah64
Author: xxxxxxxxxxxx <xxxxxxxxxxxx@xxxxxxxxxxxx>
Date:   Wed May 31 12:13:54 2023 +0900

    Initial commit

戻りたい地点のコミットハッシュをコピー 今回は最初のInitial commitの状態にする

git reset --hard [コミットハッシュ]コマンドを使用.これは,指定したコミットハッシュに戻す(指定より新しいコミットを削除する) --hardは指定した地点の内容に戻す(上位層の変更内容は消える) --softは直近までの変更内容は残るが,コミットは消える

$ git reset --hard gfgg56hgs56745fdh7087afdh4fa3hddah7dah64
$ git log # 上位層のコミットが消えているか確認

リモートリポジトリにも反映する   通常のpushを行うと,リモートとローカルでコミット履歴が異なるためエラーが出る   -fオプションで強制的にローカルの状態をリモートに反映する

& git push -f origin main

以上で変更履歴を戻すことができた