Tips

まず、reflogでHEADの移動履歴を確認

Gitのリファレンスログ(`reflog`)は、リポジトリで行われたすべてのHEADの変更履歴を記録しています。誤ってコミットを消してしまったり、ブランチを削除してしまったりした場合でも、`reflog`を使えば簡単に過去の状態に戻すことができます。

技術・言語・ツール: git reflog

Gitのリファレンスログ(reflog)は、リポジトリで行われたすべてのHEADの変更履歴を記録しています。誤ってコミットを消してしまったり、ブランチを削除してしまったりした場合でも、reflogを使えば簡単に過去の状態に戻すことができます。

消えたコミットやブランチを復活させる! git reflog の活用法

Gitで作業していると、git reset --hard やブランチの削除などで意図せず重要なコミットを見失ってしまうことがあります。git reflogは、コミット履歴だけでなく、HEADが移動したすべての操作(コミット、リセット、マージ、リベースなど)のログをローカルに保持しているため、ほとんどの場合、失われたコミットを特定し、復活させることが可能です。

# まず、reflogでHEADの移動履歴を確認
git reflog

# 例: HEAD@{5} に戻したいコミットが見つかった場合
# 新しいブランチを作成してそのコミットを指す
git branch recovered-feature HEAD@{5}

# または、既存のブランチをそのコミットにリセットする
git reset --hard HEAD@{5}
  • reflogはローカルリポジトリにのみ存在し、他の開発者と共有されるものではありません。
  • ログには有効期限があり、デフォルトでは90日(到達不能なオブジェクトは30日)で消去されます。定期的なクリーンアップやガーベージコレクションが行われると消える可能性があるので注意が必要です。
  • reflogはあなたの安全ネットです。何かを消してしまっても慌てず、まずgit reflogで履歴を確認する習慣をつけましょう。