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
  • 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

Infraestrutura como código: AWS CloudFormation

Os #cloudespecialists trouxeram uma visão geral do serviço que automatizará a configuração de suas infraestruturas na AWS!

A pandemia ainda não acabou. Mas o que mudou?

A pandemia de Covid-19 ainda não acabou, mas muita coisa já mudou. Veja o artigo que traz um balanço do mercado de TI nesse período.

Novidades da AWS – Outros temas: 5 de junho a 5 de julho

Os #cloudspecialists da Darede reuniram as principais novidades da AWS! Confira quais são elas e como elas podem te ajudar!

Estruturando um sistema de rastreamento distribuído com AWS X-Ray

O AWS X-Ray vem sendo uma das principais aplicações de monitoramento de arquiteturas, leia o artigo de Letícia Cintra sobre estruturar um sistema de rastreamento distribuído com o serviço.

Riscos cibernéticos: Você está preparado?

Nos últimos tempos assistimos muitos problemas de segurança em grandes empresas do mercado. Por isso os especialistas da Darede selecionaram algumas dicas para sua empresa! Confere aí!

Novidades AWS – Segurança & Data: 02 de setembro a 10 de outubro

Os #cloudspecialists da Darede reuniram as principais novidades de Data e Segurança da AWS! Confira quais são elas e como elas podem te ajudar!

« Anterior Página1 Página2 Página3 Página4 Página5 Página6 Página7 Página8 Página9 Página10 Próxima »
  • Alameda Araguaia, 2044 - Bloco 1 - CJ 210/211
    06455-000 - Alphaville,
    Barueri São Paulo - Brasil
  • +55 11 3900-1010 | 3995-6919

Conecte-se conosco

  • E-books
  • Blog

Mais

  • Fale Conosco
  • Canal Compliance
  • Seja Parceiro Autorizado
  • Governança Corporativa

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