Verificar git reflog para Exclusão
Nesta etapa, exploraremos o comando git reflog, que é uma ferramenta poderosa para recuperar commits ou branches perdidos. O reflog (log de referência) registra atualizações para os ponteiros dos branches e outras referências no repositório local. Isso significa que ele registra quase todas as alterações que você faz em seu repositório, incluindo commits, merges, rebases e até mesmo exclusões de branch.
Primeiro, certifique-se de estar no diretório do seu projeto:
cd ~/project/my-time-machine
Agora, vamos criar um novo branch que excluiremos posteriormente. Isso nos dará algo para procurar no reflog.
git branch feature/new-feature
Este comando cria um novo branch chamado feature/new-feature apontando para o commit atual. Vamos verificar se ele existe:
git branch
Você deve ver agora ambos os branches:
* master
feature/new-feature
Agora, vamos excluir o branch feature/new-feature usando a flag -d, que é uma exclusão "segura" (ela impede a exclusão se o branch tiver alterações não mescladas).
git branch -d feature/new-feature
Você deve ver a saída confirmando a exclusão:
Deleted branch feature/new-feature (was <commit-id>).
Substitua <commit-id> pelo ID do commit real mostrado em seu terminal.
Agora, vamos verificar o reflog para ver se a exclusão foi registrada.
git reflog
A saída mostrará um histórico de ações. Você deve ver uma entrada relacionada à exclusão do branch, semelhante a esta (a saída exata pode variar):
<commit-id> HEAD@{0}: branch: deleted feature/new-feature
<commit-id> HEAD@{1}: branch: Created from <another-commit-id>
... (other reflog entries)
A entrada do reflog HEAD@{0}: branch: deleted feature/new-feature indica que o branch feature/new-feature foi excluído. O HEAD@{0} se refere à ação mais recente. Isso demonstra que, embora o branch tenha sumido do git branch, sua exclusão é registrada no reflog, tornando-o potencialmente recuperável.
Entender o git reflog é crucial porque ele atua como uma rede de segurança. Se você excluir acidentalmente um branch ou perder commits devido a um rebase ou outra operação, o reflog pode ajudá-lo a encontrar o ID do commit que você precisa para restaurar seu trabalho.