
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
Desenvolvedor de Software
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.
Existem duas situações comuns:
Voltar para a versão do arquivo que está em origin/master
(ou outra branch remota).
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.
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):
git fetch origin
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):
git push
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:
git push
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).
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.
Para desfazer alterações indesejadas em um arquivo de um Pull Request (PR) no Git:
Identifique a fonte de onde você quer restaurar (pode ser a branch remota, como origin/master
, ou um commit específico).
Use git checkout <fonte> -- <arquivo>
para recuperar a versão desejada do arquivo.
Crie um commit registrando essa restauração (para que apareça no histórico do PR).
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.
Ao realizar estudos de análise de dados ou ao testar sistemas que lidam com grandes volumes de informações, é comum... Leia mais
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
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
Comandos para controlar o funcionamento do apache em ambientes de desenvolvimento locais: Estes Comandos Servem para ambientes Ubuntu/Debian: Leia mais