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
    • ASSESSMENT DE VULNERABILIDADE
    • CENTRO DE OPERAÇÕES DE SEGURANÇA (SOC)
    • ASSESSMENT LGPD
    • UTM - GERENCIAMENTO UNIFICADO DE AMEAÇAS
    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
thiago.marques@darede.com.br

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

Balanceadores de carga: BigIP — Estatísticas e testes

Para finalizar sua série de artigos sobre balanceadores de carga, nosso #cloudspecialist Thiago Marques agora fala sobre estatísticas e testes

FinOps e Otimização de Custo na AWS

Sua conta AWS está alta? Veja como aplicar FinOps de forma estratégica (com práticas que realmente funcionam)

Darede conquista prêmio de Collaboration Partner of the Year – LATAM

A AWS premiou os parceiros ao redor do mundo que mais se destacaram no ano.

Novidades da Semana AWS – 07 a 11 de setembro

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. Veja a da semana do dia 7/09!

Problemas com Horário de Verão

Teve problemas nos seus dispositivos por causa do horário de verão? Confira este artigo de como atualizar a hora neste período.

Novidades da semana da AWS – 16 a 20 de novembro

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. Veja as da última semana!

« 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