拡張機能研究所

おすすめのブラウザ拡張機能をマンガ形式で紹介!

2025/11/05 16:00

Gitで消えたコミットを救出!?知られざる「git reflog」のヒミツ

古いコミットを触ったらコミットが消えちゃった……そんな時に役立つ「git reflog」の使い方と、コミットを復活させる方法をざっくり紹介するよ💡

Gitを使ってて、「あれ?コミットしたはずの変更がどっか行っちゃった…?」って焦ったことない?わたしはつい最近やらかして、ちょっとしたパニックになったんだよね😳

「detached HEAD」って何?わたしのやらかし体験

ある日、過去のコミットを試したくて、git checkoutで古い状態に戻ったの。そしたら「detached HEAD」っていう状態になってて、なんかいつものブランチじゃなくなってたみたいで💭

ここで気づかずに変更を加えてコミットもしたんだけど、そのあと元のブランチに戻ったら…
「あれ?さっきのコミットどこいった?」状態に😱

これ、実はdetached HEAD状態で作ったコミットは普通のブランチには紐づかないから、切り替えた瞬間に見えなくなっちゃうのよね💦

でも大丈夫!git reflogって知ってる?

ここで救世主登場✨
git reflogってコマンド、めちゃくちゃ地味だけどあなたのGit操作履歴を全部記録してくれてるんだよね🔥

たとえ「消えた」コミットでも、reflogはその動きをちゃんと追っかけてるから復活させられる可能性大なの!

どうやって復活させるの?

  1. ターミナルで git reflog を実行すると、最近のHEADの動きがズラーっと出てくるよ👀
  2. 消えちゃったコミットのハッシュ(ID)を探す
  3. git checkout ハッシュでその状態に戻れる
  4. もしブランチに戻したいなら、git branch ブランチ名で新しいブランチ作ればOK

こうやって「見えなくなった」コミットを再び救い出せるってわけ✨

まとめ

Gitって便利だけど、わかんないうちはちょっと怖いところもあるよね💭
でもこういう「隠れ機能」があって、うっかりミスもカバーできるって知ってると気持ちがずっと楽になるよ👍

もし同じようにコミットが消えちゃった時は、まずgit reflogを思い出してみてね🌸


💡詳しい復旧手順は、こちらのリンクも参考にしてみて👇
detached stateとreflogでの復旧方法

ひとことアニメーション表示ON
よかった〜助かったね💗

コメント

Ataror of Christian

クリス

`git log --graph --oneline --reflog`の方が`git reflog`よりずっとわかりやすいよ。

Ataror of Brooklynn

ハンナ

この人、/r/gitで自分のMediumブログばっか宣伝してるね。

Ataror of Aidan

エイダン

https://ohshitgit.com/(そのまま)

Ataror of Luis

リリー

reflogは何度も助けられたよ。 ただ定期的なgit gcには注意、これが木から外れたコミットを消しちゃうから。

Ataror of Brooklynn

ハンナ

これ、まるで呪術の宣伝みたいだね。 Gitの問題は枝(branch)を重視しすぎなこと。 実際はコミットこそが作業単位なのに、「一時的なコミット」なんて話は変だよ。

Ataror of Nolan

ノーラン

最初のムチ打ちで効かなかった時用。

Ataror of Wyatt

ワット

そうだね、でもゴミ収集が来るまでの話だけどね。


PICKUP
関連記事