Recupere os Arquivos Perdidos

GitBeginner
Pratique Agora

Introdução

Como desenvolvedor, você pode encontrar situações em que arquivos importantes são excluídos e confirmados (committed) acidentalmente. Este desafio simula esse cenário, testando sua habilidade de usar as ferramentas de inspeção de histórico e restauração de estado do Git para recuperar arquivos perdidos e retornar seu projeto a um estado funcional.

Este é um Desafio (Challenge), que difere de um Laboratório Guiado (Guided Lab) pois você deve tentar concluir a tarefa de forma independente, em vez de seguir passos de aprendizado. Desafios costumam ser um pouco mais difíceis. Se encontrar dificuldades, você pode discutir com o Labby ou verificar a solução. Dados históricos mostram que este é um desafio de nível iniciante com uma taxa de aprovação de 96%. Ele recebeu uma taxa de avaliações positivas de 94% dos alunos.

Recupere os Arquivos Perdidos

Antes de iniciar este desafio, um repositório Git foi inicializado para você no diretório ~/project/important-project. Este repositório contém vários commits, incluindo a criação e a subsequente exclusão acidental de dois arquivos importantes. Aqui está o que você precisa saber:

  • O repositório foi criado com um commit inicial adicionando um arquivo README.md.
  • Dois arquivos cruciais, important_algorithm.py e crucial_data.txt, foram adicionados em um commit subsequente.
  • Houve mais alguns commits com diversas alterações.
  • Em algum momento, important_algorithm.py e crucial_data.txt foram excluídos acidentalmente, e essa exclusão foi confirmada em um commit.
  • Houve pelo menos mais um commit após a exclusão acidental.

Sua tarefa é recuperar os arquivos excluídos navegando pelo histórico do repositório e, em seguida, realizar um novo commit com os arquivos recuperados.

Tarefas

  1. Investigue o histórico do repositório para descobrir quando important_algorithm.py e crucial_data.txt foram excluídos.
  2. Restaure o repositório para o estado imediatamente anterior à exclusão.
  3. Mantenha os commits originais e crie um novo commit com a mensagem "Recover deleted files".

Requisitos

  • Trabalhe no diretório ~/project/important-project.
  • Garanta que important_algorithm.py e crucial_data.txt estejam presentes após a recuperação.
  • Certifique-se de que a mensagem do último commit seja "Recover deleted files" e que o histórico de commits seja preservado.

Exemplo

Após concluir o desafio com sucesso, ao executar ls no diretório do projeto, você deverá ver:

$ ls ~/project/important-project
important_algorithm.py crucial_data.txt README.md

Executar git status deve mostrar um diretório de trabalho limpo:

$ git status
On branch master
nothing to commit, working tree clean

E o comando git log deve mostrar seu novo commit no topo:

$ git log --oneline
8876d8b (HEAD -> master) Recover deleted files
9b3525c Update project status
5e6234c Oops, accidentally deleted important files
9de9506 Update algorithm TODO
01c36ae Add crucial data and algorithm
638a98d Initial commit
✨ Verificar Solução e Praticar

Resumo

Neste desafio, você enfrentou um cenário comum no Git: arquivos excluídos acidentalmente. Você aprendeu como:

  1. Inspecionar o histórico completo do seu repositório, incluindo ações que alteraram o HEAD.
  2. Restaurar seu repositório para um estado anterior específico, efetivamente "voltando no tempo" em seu projeto.
  3. Criar um novo commit para salvar o estado restaurado do seu projeto.

Essas habilidades são valiosas para encontrar commits perdidos, desfazer erros e manter um histórico de projeto claro. Lembre-se, embora essas ferramentas possam salvá-lo de desastres, é sempre melhor trabalhar com cuidado e fazer commits frequentes e bem documentados para evitar tais situações em primeiro lugar.

Ao completar este desafio, você adquiriu experiência prática com algumas das ferramentas de recuperação mais poderosas do Git, competências que serão muito úteis ao longo de sua carreira de desenvolvedor.