PauloRB.dev

Desenvolvedor de Software

Como desfazer alterações em arquivos indesejados num Pull Request (PR) | PauloRB.dev Como desfazer alterações em arquivos indesejados num Pull Request (PR) – PauloRB.dev
Como desfazer alterações em arquivos indesejados num Pull Request (PR)

Como desfazer alterações em arquivos indesejados num Pull Request (PR)

Ao criar um Pull Request, é comum perceber depois que um arquivo foi modificado por engano ou não deveria estar ali. Em vez de remover completamente o arquivo do repositório (usando git rm), muitas vezes precisamos manter o arquivo mas desfazer as alterações. Este artigo explica as principais estratégias para restaurar ou reverter um arquivo, sem excluir definitivamente do código.

1. Identifique de qual versão você quer recuperar o arquivo

Existem duas situações comuns:

  1. Voltar para a versão do arquivo que está em origin/master (ou outra branch remota).

  2. Voltar para uma versão anterior em um commit específico do histórico local.

Em ambos os casos, usaremos o comando git checkout (ou seu sucessor, git restore, em versões mais recentes do Git) para trazer o arquivo de volta ao estado desejado.

2. Restaurar a versão do arquivo a partir de origin/master

Caso o arquivo já existisse antes na branch principal (por exemplo, master) e você queira simplesmente reverter para essa versão que está no repositório remoto, faça o seguinte:

2.1 Atualize suas referências locais (opcional, mas recomendado):

2.2 Restaure o arquivo para a versão do origin/master:

git checkout origin/master -- caminho/do/arquivo

Isso faz com que seu arquivo local seja sobrescrito pela versão que está em origin/master.

2.3 Crie um commit refletindo a restauração:

git add caminho/do/arquivo
git commit -m "Restaura arquivo a partir de origin/master"

2.4 Envie para o repositório (caso sua branch seja a do PR):

Com isso, seu Pull Request receberá um novo commit que anula as mudanças feitas anteriormente no arquivo, sem removê-lo do repositório.

3. Restaurar a versão de um commit anterior

Se o arquivo não está em origin/master ou você quer a versão de um commit bem específico (por exemplo, o commit imediatamente anterior ao que introduziu o problema), você pode apontar para esse commit diretamente:

Descubra o commit anterior (por exemplo, 5fb8281~1 indica o commit que vem antes de 5fb8281).

Faça checkout do arquivo com base nesse commit:

git checkout 5fb8281~1 -- caminho/do/arquivo

Esse comando restaura o arquivo para o estado exatamente como estava antes do commit 5fb8281.

Crie o commit de restauração:

git add caminho/do/arquivo
git commit -m "Reverte alterações de caminho/do/arquivo introduzidas no commit 5fb8281"

Push para a branch do PR:

Esse método funciona mesmo se o arquivo foi criado ou modificado em commits recentes; basta escolher o commit que reflete o estado desejado do arquivo.

4. Reverter o commit inteiro (caso deseje desfazer tudo)

Às vezes, é mais simples desfazer todas as alterações de um commit específico. Se o commit 5fb8281 só incluiu mudanças indesejadas (ou você quer reverter tudo que ele fez), rode:

git revert 5fb8281
git push

O Git criará automaticamente um commit de “reversão” que anula todas as modificações introduzidas por 5fb8281 (incluindo quaisquer outros arquivos que tenham sido alterados ali).

5. Por que não usar git rm se eu não quero remover o arquivo?

O comando git rm deleta o arquivo do repositório. Se o objetivo é apenas desfazer mudanças, não faz sentido removê-lo por completo. Você só usaria git rm se quisesse excluir o arquivo para sempre do projeto (por exemplo, se foi adicionado por engano e realmente não deveria existir ali).

No cenário em que o arquivo deve permanecer no projeto, mas com a versão anterior, o ideal é usar checkout (ou restore) para trazer de volta o estado desejado.

6. Conclusão

Para desfazer alterações indesejadas em um arquivo de um Pull Request (PR) no Git:

  1. Identifique a fonte de onde você quer restaurar (pode ser a branch remota, como origin/master, ou um commit específico).

  2. Use git checkout <fonte> -- <arquivo> para recuperar a versão desejada do arquivo.

  3. Crie um commit registrando essa restauração (para que apareça no histórico do PR).

  4. Faça push para a mesma branch. O seu Pull Request será atualizado automaticamente.

Essa abordagem permite que o arquivo continue existindo no repositório, mas volta ao estado correto, limpando mudanças indevidas sem removê-lo por completo.

 

Mais Posts

Como Atualizar Valores de Chaves em Campos JSON no PostgreSQL

Como Atualizar Valores de Chaves em Campos JSON no PostgreSQL

Atualizar valores em um campo JSON no PostgreSQL é uma operação comum ao trabalhar com dados semi-estruturados. Isso é especialmente... Leia mais

Solucionando Problemas de Conexão no PostgreSQL: Um Guia Prático

Solucionando Problemas de Conexão no PostgreSQL: Um Guia Prático

Quando se trata de gerenciar bancos de dados, o PostgreSQL se destaca como uma escolha robusta e flexível para desenvolvedores... Leia mais

Como Instalar e Usar o MailHog com Laravel para Testes de Email

Como Instalar e Usar o MailHog com Laravel para Testes de Email

No desenvolvimento de aplicações web, especialmente no Laravel, enviar emails é uma tarefa comum. Porém, testar o envio de emails... Leia mais

Design Pattern Facade em PHP : Exemplo prático

Design Pattern Facade em PHP : Exemplo prático

O Design Pattern Facade é uma solução elegante para simplificar a interface de um subsistema complexo, tornando-o mais fácil de... Leia mais