Desfazendo Erros: restore, reset, revert — O Caminho Correto e os Perigos
Um dos tópicos mais requisitados em entrevistas e no dia a dia profissional é como desfazer alterações já realizadas. Vamos explorar três ferramentas com diferentes 'níveis' de desfazer, focando no mais importante: demonstraremos cenários específicos onde reset --hard pode prejudicar o trabalho em equipe, e como revert se apresenta como uma alternativa segura. Soluções boas e ruins — com consequências reais.
- Você conseguirá desfazer alterações com confiança em qualquer estágio: no diretório de trabalho, no índice e no histórico de commits.
- Você entenderá a diferença fundamental entre reset e revert, sabendo quando cada um é mais apropriado.
- Você aprenderá a evitar os erros comuns que iniciantes cometem ao desfazer alterações em repositórios compartilhados.
จุดเริ่มต้นของบทเรียน
Git restore: o botão desfazer para arquivos
- Git restore — desfaz alterações não commitadas
- Funciona como o botão 'desfazer' do editor
- Seguro — não altera o histórico de commits
- Retorna os arquivos para o último estado salvo
Imagine que você salvou acidentalmente um arquivo com erros e quer voltar ao estado anterior. O Git restore age como um botão mágico de desfazer — ele retorna os arquivos para o último estado confirmado. Diferente de outros comandos de desfazer, o restore trabalha apenas com alterações não commitadas e é completamente seguro para o histórico do seu projeto. É a primeira ferramenta a ser usada quando você precisa corrigir rapidamente uma situação sem arriscar o histórico de alterações.
Desfazendo alterações no diretório de trabalho
- git restore arquivo.txt — retorna o arquivo para o último commit
- Desfaz todas as alterações no diretório de trabalho
- Seguro — as alterações podem ser recuperadas pelo editor
- Verifique o status com git status antes de restaurar
Suponha que você passou meia hora editando um arquivo de configuração, mas percebeu que está no caminho errado. Em vez de reverter cada alteração manualmente, execute git restore config.yml. O arquivo voltará instantaneamente ao estado do último commit. É como se você simplesmente fechasse o arquivo sem salvar, mas com a garantia de que está retornando a uma versão funcional.
# Demonstração de restauração de arquivo
$ echo "Alterações incorretas" > main.py
$ git status
$ git restore main.py
$ cat main.py
$ git status
Removendo arquivo do índice
- git restore --staged file.txt — remove o arquivo do índice
- Mantém as alterações no diretório de trabalho
- Cuidado: sem --staged as alterações serão perdidas
- Sempre verifique o git status antes de executar
Um erro comum é adicionar acidentalmente um arquivo desnecessário ao índice. Por exemplo, você executou git add ponto e incluiu um arquivo temporário de configuração. O comando git restore com a flag --staged e o nome do arquivo, como settings.tmp, removerá cuidadosamente o arquivo do índice, mas manterá todas as alterações no diretório de trabalho. Sem a flag --staged, você perderia seu trabalho, então sempre verifique o status com git status antes de executar o restore. Agora você sabe desfazer alterações antes do commit. Mas e se o erro já estiver no histórico? É aí que o git reset entra em cena.
# Arquivo adicionado ao índice por engano
$ git add config.tmp
$ git status
# Remove do índice mantendo as alterações
$ git restore --staged config.tmp
$ git status
# Verifica se o arquivo permaneceu no diretório de trabalho
$ ls -la config.tmp
บทเรียนฉบับเต็มใช้ได้เมื่อสมัครสมาชิก
ฉบับเต็มมีสไลด์เพิ่มอีก 24 สไลด์
วิดีโอ สไลด์ทั้งหมด โน้ต แบบทดสอบ AI ติวเตอร์ และการสัมภาษณ์จะเปิดหลังเข้าสู่ระบบและสมัครสมาชิก
เข้าสู่ระบบหรือลงทะเบียน สมัครสมาชิกเนื้อหาบทเรียน
- Git restore: o botão desfazer para arquivos
- Desfazendo alterações no diretório de trabalho
- Removendo arquivo do índice
- Git reset: como funciona a rebobinagem do histórico
- Reset --soft seguro: alterações no índice
- Reset padrão --mixed: alterações no diretório de trabalho
- Reset --hard perigoso: exclusão irreversível
- Reset: três modos, um comando
- git reset --soft: reescrevendo o histórico com segurança
- Quando usar --mixed e --hard
- Checklist: qual reset escolher?
- Por que não podemos simplesmente apagar um erro?
- Como o git revert funciona na prática
- Desfazendo vários commits de uma vez
- Reset: reescrevendo o histórico localmente
- Revert: desfazendo alterações com segurança
- O que acontece ao fazer push: reset vs revert
- Por que o reset --hard é perigoso
- Exemplo de perda de alterações
- Como recuperar dados
- Perigos do rollback em branch compartilhada
- Rollback seguro com revert
- Sequência correta de ações
- Quando usar: restore, reset ou revert
- Regras para trabalhar com histórico pessoal e compartilhado
- Instruções passo a passo em caso de erro
- Conclusão e Tarefa: Mestre do Desfazer
บทความเกี่ยวกับบทเรียนนี้
- คำสั่ง Git: ชีตสรุปพร้อมตัวอย่างสำหรับใช้ทุกวัน
- git checkout, switch และ restore: ควรใช้อะไรเมื่อไร
- git reset กับ git revert: วิธียกเลิกคอมมิตโดยไม่ทำลายประวัติของทีม
- git reflog: วิธีกู้คอมมิตและบรานช์ที่หายไป
- Git และ GitHub: ต่างกันอย่างไร และเชื่อมโยงกันอย่างไร
บทเรียนทั้งหมดในคอร์สนี้
- Introdução: Git do Zero ao Desenvolvedor Confiante
- Por que o Git é necessário — e por que ele é exigido no mercado de trabalho
- Instalação e Configuração: Preparando o Git para o Primeiro Uso
- Primeiro Repositório: init, add, commit e a Mágica do Índice
- Lendo o histórico: log, diff, show e navegação pelo passado
- Branches: A Realidade Paralela do Seu Código
- Desfazendo Erros: restore, reset, revert — O Caminho Correto e os Perigos
- GitHub e repositórios remotos: seu código na nuvem
- Trabalho em Equipe: Forks, Branches de Funcionalidades e Pull Requests
- Conflitos de Merge: Sem Pânico - Entenda e Resolva
- Processos de Git em equipes reais: qual fluxo de trabalho escolher
- Ferramentas Avançadas: rebase, stash, cherry-pick e tags
- Projeto Final: Simulando o Desenvolvimento em Equipe no Mundo Real