Pular para o conteúdo
~/.primo-academy.sh
☰ Aulas · Git · 0/23
Recomendado: essencial

Reflog: Recuperando o Que Você "Perdeu"

1 min de leitura

fonte

Este é o nó que tira o medo do Git. Aquele reset --hard que apagou seu commit, aquele rebase que deu errado, aquela branch deletada - quase nada some de verdade. O Git mantém um diário secreto de para onde o HEAD apontou: o reflog.

O reflog registra cada movimento do HEAD na sua máquina - commits, resets, checkouts, rebases - mesmo os que "sumiram" do histórico normal:

git reflog
# a1b2c3d HEAD@{0}: reset: moving to HEAD~1
# f4e5d6c HEAD@{1}: commit: A feature importante que "perdi"   <- ele ainda existe!

Achou o commit perdido? Você o traz de volta apontando uma branch para ele, ou resetando de volta:

git reset --hard f4e5d6c          # volta o HEAD para aquele estado
git branch recuperada f4e5d6c     # ou cria uma branch a partir dele, mais seguro

O truque: mesmo commits "órfãos" (sem branch apontando) continuam no banco do Git por semanas antes de serem realmente coletados. O reflog é o mapa para achá-los.

  • Reflog = diário de todos os movimentos do HEAD na sua máquina.
  • Commits "perdidos" costumam estar lá - reset, rebase e branch deletada incluídos.
  • Recupere apontando uma branch nova (git branch nome <hash>) para o commit.
  • É local: o reflog é da sua máquina, não sobe para o remoto.

Dica: a existência do reflog é o que autoriza você a experimentar sem medo com rebase, reset e afins. Sabendo que dá para voltar, o Git deixa de ser um campo minado. Só lembre: ele salva o que foi comitado - não o que você nunca comitou.

Reflog salva o passado. O bisect ajuda a entender o presente: descobrir qual commit introduziu um bug.

// recursos

// avaliação da trilha

ainda sem avaliações