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.
Phần đầu bài giảng
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
Bài giảng đầy đủ dành cho thuê bao
Còn 24 slide nữa trong phiên bản đầy đủ.
Video, toàn bộ slide, ghi chú, bài kiểm tra, gia sư AI và phỏng vấn sẽ mở sau khi đăng nhập và đăng ký thuê bao.
Đăng nhập hoặc đăng ký Đăng ký thuê baoNội dung bài giảng
- 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
Bài viết liên quan đến bài học này
- Lệnh Git: bảng tra cứu với ví dụ dùng hằng ngày
- git checkout, switch và restore: khi nào dùng cái nào
- git reset và git revert: cách hoàn tác commit mà không phá lịch sử nhóm
- git reflog: cách khôi phục commit và nhánh đã mất
- Git và GitHub: khác nhau thế nào và liên hệ ra sao
Tất cả bài giảng của khóa học
- 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