Recuperar os Arquivos Perdidos

GitGitBeginner
Pratique Agora

💡 Este tutorial foi traduzido do inglês com assistência de IA. Para ver o original, você pode mudar para a versão em inglês

Introdução

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

Este é um desafio, que difere de um Lab guiado em que você precisa completar o desafio de forma independente, em vez de seguir os passos de um Lab para aprender.Desafios geralmente têm um pouco de dificuldade. Se você encontrar isso difícil, pode discutir com 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 98.25%.

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/BasicOperationsGroup -.-> git/add("Stage Files") git/BasicOperationsGroup -.-> git/status("Check Status") git/BasicOperationsGroup -.-> git/commit("Create Commit") git/BranchManagementGroup -.-> git/checkout("Switch Branches") git/BranchManagementGroup -.-> git/log("Show Commits") git/BranchManagementGroup -.-> git/reflog("Log Ref Changes") subgraph Lab Skills git/add -.-> lab-387781{{"Recuperar os Arquivos Perdidos"}} git/status -.-> lab-387781{{"Recuperar os Arquivos Perdidos"}} git/commit -.-> lab-387781{{"Recuperar os Arquivos Perdidos"}} git/checkout -.-> lab-387781{{"Recuperar os Arquivos Perdidos"}} git/log -.-> lab-387781{{"Recuperar os Arquivos Perdidos"}} git/reflog -.-> lab-387781{{"Recuperar os Arquivos Perdidos"}} end

Recuperar 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 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 várias alterações.
  • Em algum momento, important_algorithm.py e crucial_data.txt foram acidentalmente excluídos, e essa exclusão foi confirmada (committed).
  • 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, confirmar (commit) os arquivos recuperados.

Tarefas

  1. Investigar o histórico do repositório para descobrir quando important_algorithm.py e crucial_data.txt foram excluídos.
  2. Restaurar o repositório ao estado imediatamente anterior à exclusão.
  3. Manter os commits originais e criar um novo commit com a mensagem "Recover deleted files" (Recuperar arquivos excluídos).

Requisitos

  • Trabalhar no diretório ~/project/important-project.
  • Certificar-se de que important_algorithm.py e crucial_data.txt estejam presentes após a recuperação.
  • Certificar-se de que a última mensagem de commit seja "Recover deleted files" (Recuperar arquivos excluídos) e que o histórico de commits seja preservado.

Exemplo

Após concluir o desafio com sucesso, a execução de ls no diretório do projeto deve mostrar:

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

A execução de git status deve mostrar um diretório de trabalho limpo:

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

E 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 do Git: arquivos acidentalmente excluídos. Você aprendeu a:

  1. Inspecionar o histórico completo do seu repositório, incluindo ações que alteraram o HEAD.
  2. Restaurar seu repositório a 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 inestimáveis 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ê ganhou experiência prática com algumas das ferramentas de recuperação mais poderosas do Git, habilidades que o servirão bem ao longo de sua carreira de desenvolvimento.

OSZAR »