Ir para o conteúdo
  • Empresa
    • SOBRE NÓS
    • TRABALHE CONOSCO
  • Soluções
    CONSULTORIA CLOUD
    • GET STARTED
    • DESIGN
    • IMPLANTAÇÃO
    MIGRAÇÃO
    SQUAD AS A SERVICE
    WELL ARCHITECTED
    SEGURANÇA E COMPLIANCE
    • MSSP
    • SECAAS
    • OFFENSIVE ACTIONS
    • SRT
    • REVENDA
    BIG DATA & MACHINE LEARNING
    • Analytics
    • AI/ML
    SERVIÇOS GERENCIADOS
    • MONITORAMENTO E SUPORTE 24X7
    • DAREDE MSP
    • GERENCIAMENTO DEVOPS
    • GERENCIAMENTO DEVSECOPS
    • GERENCIAMENTO FINOPS
    • GERENCIAMENTO DE BANCO DE DADOS
    • GERENCIAMENTO DE PABX IP
    • LICENCIAMENTO DE SOFTWARE
    COMPETÊNCIAS AWS
    • AWS CLOUD FRONT
    • AWS AURORA
    • AMAZON RDS
    • DEVOPS
    • MICROSOFT WORKLOADS
    • MIGRATION
    • PUBLIC SECTOR
    • PUBLIC SECTOR NPO
    • PUBLIC SECTOR EDUCATION
    • WELL ARCHITECTED
    • VMWARE CLOUD ON AWS
    • API GATEWAY
    • LAMBDA
    • NETWORKING ON AWS
    • FINANCIAL SERVICES
  • Cases
  • Blog
Darede Portugal
  • Fale Conosco
  • Canal Compliance
  • Seja Parceiro Autorizado
Errou no Git? Sem pânico! Aprenda a reverter commits, restaurar arquivos e resetar alterações para evitar desastres no seu código.

Autor: Thiago Marques
Data 21/02/2025


O pai tá on!

Hoje vamos falar sobre um dos superpoderes do Git: voltar no tempo! Sim, igual ao Marty McFly com o DeLorean DMC-12 em De Volta para o Futuro.

Por que desfazer alterações no Git?

 

  1.  Bug 
    Você está desenvolvendo uma feature em uma branch separada, fez um commit de uma nova versão e, durante os testes, descobriu um bug. O ideal é reverter esse commit (com git revert), corrigir o erro e só então fazer o merge com a main.

  2.  ‘Mãozada’
    Sabe quando você dá um git add . sem pensar e manda arquivos que não devia? Com git restore, dá para remover esses arquivos antes de confirmá-los no commit.

  3.  ‘Supermãozada’
    Se enviar arquivos errados para uma branch já é ruim, imagina mandar commits errados para a main? Isso é uma supermãozada, mas dá para corrigir com git reset.

Resolvendo o bug com git revert

O git revert cria um novo commit que desfaz as alterações do commit anterior, mantendo o histórico intacto. Assim, você corrige o erro sem bagunçar o repositório.

Resolvendo a ‘mãozada’ com git restore

O restore basicamente remove as alterações da staging area ou até descarta as alterações do working directory, e o mais importante: ele não atualiza a branch, ou seja, não há modificação no histórico.

No exemplo, criamos o arquivo base (base.html) em um commit, depois adicionamos três arquivos (base.html, estilo.css e jinja2.html), cada um em seu próprio commit. Por fim, criamos cursos.html e certificacoes.html, nos quais executamos git add . para colocar todos na staging area.

Depois que fizemos isso, notamos que as novas páginas (hash 6d7204f) foram enviadas erroneamente (a famosa “mãozada”) e, por isso, precisamos removê-las. Para isso, vamos utilizar o seguinte comando:

git restore –source <hash_do_commit_que_quer_voltar> <arquivo>

Nesse caso:

git restore –source 21b9415 .

Note que o histórico de commits não mudou (ainda aparece “novas páginas”). No entanto, os arquivos foram deletados do working directory, como pode ser visto no git status.

Observação: isso também poderia ser feito com o git checkout, e, de fato, o comportamento é o mesmo, com a diferença da flag –source. A questão aqui é mais uma boa prática de arquitetura de software, onde utilizamos comandos específicos para execuções específicas.

Resolvendo a “Supermãozada” com git reset

Com git reset, temos três opções que podem ser utilizadas como parâmetros com –:

  • soft: mantém os arquivos do commit na staging area;
  • mixed: mantém os arquivos do commit no working directory (opção padrão);
  • hard: remove os arquivos do novo commit.

Por exemplo, imagine que você realizou as seguintes ações:

  1. Commit 1 – hash 1e8f556 – arquivos 1.py, 2.py, 3.py
  2. Commit 2 – hash 556eabc – arquivos 4.py, 5.py, 6.py

Agora, vamos testar os três tipos de reset, alterando com os seguintes comandos:

git reset –soft 1e8f556
git reset –mixed 1e8f556
git reset –hard 1e8f556

  • soft: mantém todos os arquivos, mas 4.py, 5.py e 6.py permanecerão na staging area. Ou seja, será necessário apenas executar git commit -m “” para adicioná-los novamente ao repositório.
  • mixed: mantém todos os arquivos, mas 4.py, 5.py e 6.py estarão no working directory (não staged). Isso significa que será preciso executar git add . seguido de git commit -m “” para adicioná-los ao repositório.
  • hard: apaga os arquivos do commit 2 (556eabc), como se eles nunca tivessem existido.

Observação: Para visualizar essas alterações, você pode validar os logs de referência com o comando:
git reflog

That’s all folks! Be Happy!!!

foto-thiago-marques
Thiago Marques Technical Account Manager

Technical Account Manager da Darede, formato em Rede de Computadores, e pós graduado em Segurança da Informação. Possui ampla experiência em Datacenters e Service Providers, além de ser um entusiasta em DevOps e mercado financeiro.

  • #Código, #ControleDeVersão, #Desenvolvimento, #DesfazendoAlterações, #DevTips, #GitCommands, #GitReset, #GitRestore, #GitRevert, #Programação, #Versionamento, GIT

OUTRAS PUBLICAÇÕES

Os benefícios da Telemedicina

A área da saúde é uma das que mais que se beneficiam dos avanços da tecnologia. E a telemedicina vem para auxiliar na forma de como nos tratamos. Leia o artigo do blog da Darede.

Novidades da Semana – 21 a 25 de junho

Todos os dias a AWS lança uma série novidades e atualizações em seus produtos que visam melhorar a vida de seus usuários. Reunimos algumas delas que fazem mais sentido para nosso mercado e que certamente aplicaremos em nosso dia a dia. Confira as novidades das últimas semanas.

Sustentabilidade

Para atingir seus objetivos comerciais e tecnológicos, atualmente as empresas necessitam adotar processos sustentáveis, inclusive seus ambientes em cloud. E a AWS entende que a inovação é parte essencial para atingir as metas de sustentabilidade firmadas em diversos acordos ao redor do mundo. Que é preciso enfrentar desafios como a descarbonização para impulsionar a transformação digital sustentável.

Microsoft Azure passa a faturar em Reais

A Microsoft anunciou nesta quinta-feira, 28, que, a partir do dia 1.º de março, irá adequar o valor dos serviços da plataforma Azure para o

Introdução ao AWS re:Invent 2024

O AWS re:Invent 2024 está chegando, e este é o momento de marcar presença no maior evento anual da Amazon Web Services (AWS). Desde sua criação, o evento tornou o ponto de encontro essencial para profissionais de tecnologia, líderes de negócios e entusiastas da computação em nuvem, que buscam se atualizar com as últimas inovações, aprender com os melhores do setor e expandir suas redes de contato.

Esse ano junto estarei novamente com a Darede nesse que é o maior evento de tecnologia do mundo.

Seja um Provedor de Internet Automatizado: Ativação, Bloqueio e Cancelamento

Com o avanço da tecnologia no dia a dia das pessoas, gerenciar os negócios também acaba sendo uma tarefa a mais. Assim, quanto mais dinâmico

« Anterior Página1 Página2 Página3 Página4 Página5 Página6 Página7 Página8 Página9 Página10 Próxima »
  • E-books
  • Blog
Conecte-se conosco
Mais
  • Fale Conosco
  • Canal Compliance
  • Seja Parceiro Autorizado
  • Governança Corporativa

Escritórios

  • Alameda Araguaia, 2044 - Bloco 1 - CJ 210/211 06455-000 - Alphaville, Barueri São Paulo - Brasil
  • Dabi Business Park - R. Gen. Augusto Soares dos Santos, 100 - Parque Industrial Lagoinha Ribeirão Preto, São Paulo, 14095
  • Avenida Bombeiros Voluntários de Algés 44 Lisbon , Algés, 1495 Oeiras
  • +55 11 3900-1010 | 3995-6919
newsletter
  • Política de Privacidade e Cookies
  • Perguntas Frequentes
© Copyright 2025 Darede à nuvem
Todos os direitos reservados | By Damidia Marketing & Conteúdo

Nós usamos cookies para garantir e oferecer a melhor experiência de navegação em nosso site! Mais informações

ACEITAR & FECHAR
RECUSAR