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

Gerando Dados Fictícios para Análise de Compras em Python

Gerando Dados Fictícios para Análise de Compras em Python

Ao realizar estudos de análise de dados ou ao testar sistemas que lidam com grandes volumes de informações, é comum... Leia mais

Rascunho para estudo de programação orientada a objetos em Python

Rascunho para estudo de programação orientada a objetos em Python

A orientação a objetos (OO) é um paradigma de programação central em Python, que facilita a organização e estruturação do... Leia mais

Função para fazer a tecla ENTER funcionar como a tecla TAB em formulários web.

Função para fazer a tecla ENTER funcionar como a tecla TAB em formulários web.

Segue função em Jquery que utilizei muito em projetos para permitir o comportamento da tecla TAB(pular campos do formulários) utilizando... Leia mais

Como iniciar, parar e reiniciar o Apache Web Server no Linux

Como iniciar, parar e reiniciar o Apache Web Server no Linux

Comandos  para controlar o funcionamento do apache em ambientes de desenvolvimento locais: Estes Comandos Servem para ambientes Ubuntu/Debian: Leia mais