トラブルシューティング
git reset --hard で消した変更を復旧する
git reset --hard で消してしまった変更やコミットを元に戻す方法を解説
コミット済みの変更を復旧する(reflog)
reset --hard でコミットを消してしまっても、Git は直近の HEAD の移動履歴を reflog に記録しています。
ここからコミットハッシュを見つけて復元できます。
bash
# reflog でコミット履歴を確認
git reflog
# 出力例:
# abc1234 HEAD@{0}: reset: moving to HEAD~3
# def5678 HEAD@{1}: commit: 機能Aを実装
# 戻したいコミットのハッシュを指定して復元
git reset --hard def5678リモートと同じ状態に戻す
ローカルの変更をすべて捨ててリモートリポジトリと同じ状態に戻したい場合、clone し直す必要はありません。
fetch でリモートの最新情報を取得し、対象のブランチに切り替えてから reset するだけで済みます。
bash
# リモートの最新を取得
git fetch origin
# main ブランチに切り替え
git switch main
# リモートの main ブランチと同じ状態にする
git reset --hard origin/main
Git Ready