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
以上で変更履歴を戻すことができた