こんにちは。この記事は、自分が一人でアプリやWebサービスを作っているときに「うまく動かなくなった!」「前の状態に戻したい!」と思ったときに使った方法をメモしたものです。
Gitを使い始めたばかりのときって、「コミット?」「ハッシュ?」「ブランチってなに?」という状態だと思います。
なので、できるだけわかりやすく、むずかしい言葉には説明をつけて書いてみました。
✅ 今回やりたかったこと
バグってしまったので、前にちゃんと動いていたときの「状態(バージョン)」に戻したい!
🔁 Gitで前のバージョンに戻す手順
① 戻したい「バージョン」を探す
まずは、「いつの時点に戻したいか」を決めます。
Gitでは、保存してきた記録を「コミット」と呼びます。
それぞれのコミットには「ハッシュ値(例:83b0dc6
)」という番号がついています。
下のコマンドで、これまでの記録を一覧で見ることができます。
git log
うまく動いていたときのハッシュ値をメモしておきましょう。
② メインの作業場所に戻る
Gitでは、作業の「場所(タイムライン)」のことを「ブランチ」といいます。
よく使うのは「main(メイン)」というブランチです。
今いる場所が「main」じゃない場合は、次のコマンドで移動します。
git checkout main
③ 自分のパソコンの中だけ、前のバージョンに戻す
いよいよ戻したいバージョンに巻き戻します。
「ローカルリポジトリ(自分のPCの中の保存場所)」を、指定したバージョンに完全に戻します。
git reset --hard 83b0dc6
--hard
をつけると、「ファイルの内容」も含めて、すべてその時点に戻ります。- この操作はやり直しができません。大切な変更があるときはバックアップしてから!
④ GitHubなどにアップした内容も戻す
Gitで保存した記録は、GitHubなど「インターネット上の保管場所(リモートリポジトリ)」にもアップできます。
そのリモートの内容も、さっきと同じバージョンに戻すには、次のコマンドを使います。
git push origin main --force-with-lease
origin
は「インターネット上の保管場所」の名前です(多くは origin です)。--force-with-lease
は「ほかの人の変更を消さないように、安全に強制的に戻す」方法です。- チームで作っている場合は、必ず他の人に確認してから使ってください!
⚠️ 気をつけること
- この方法は「完全に巻き戻す」ので、失われる内容もあります。
--hard
や--force-with-lease
は便利だけど、使い方を間違えると大変なことに。- だからこそ、自分が何をしたか、何を戻そうとしているか、ちゃんとメモしながら作業しましょう。
✍️ まとめ
Gitを覚えたてのころって、わけもわからずバグを出して「どうしよう…」ってなること多いと思います。
でも、Gitにはちゃんと「巻き戻す」ための仕組みがあります。
✅ 前のバージョンに戻す →
git reset --hard <commit番号>
✅ インターネット上にも反映 →git push origin main --force-with-lease
この方法を覚えておけば、怖がらずにいろんなチャレンジができるようになります!
自分のミスから学んだこの方法が、だれかの役に立てばうれしいです。
コメント