Casa Estudar Como reverter arquivos e pastas individuais no Git

Como reverter arquivos e pastas individuais no Git

por Frank
Como reverter arquivos e pastas individuais no Git

Introdução

O Git é uma excelente ferramenta para manter cada versão de sua base de código e, às vezes, é necessário voltar no tempo e restaurar versões mais antigas de arquivos. O Git pode reverter alterações em um único arquivo ou pasta, bem como retirar commits completos ou redefinir todo o repositório.

Escolhendo entre reverter e redefinir

Quando você “reverte” um commit, o Git geralmente aplica um novo commit com as modificações opostas, essencialmente cancelando-o. Isso é útil se você cometer um erro e precisar “remover” um commit mesmo que ele permaneça no histórico.

O procedimento para redefinir o repositório é um pouco diferente. Você só pode retirar um commit por vez, mas se você executar um git reset, o Git irá redefinir totalmente o repositório para quando aquele commit foi criado. Isso é feito por vários motivos, sendo os mais comuns apagar commits ou corrigir o histórico de branchs.

Ambos os procedimentos afetam todo o repositório, mas comandos idênticos podem ser usados para obter os mesmos efeitos em arquivos ou pastas individuais. Por exemplo, executar git reset em um único arquivo iria restaurá-lo para o estado em que estava quando o commit foi criado. Isso é benéfico se você quiser apenas escolher uma versão mais antiga do arquivo do seu histórico do Git.

Examinando versões antigas do Git

The low-tech approach to restoring a file to its original state is rather simple—Github and most other Git servers maintain track of your file history, and you can simply click on a commit and choose “Browse Files” to see a snapshot of your repository from the past. You may then either baixe o arquivo ou copie o texto.

Isso é particularmente útil se você estiver trabalhando com um grande número de arquivos de código e quiser comparar versões anteriores de rotinas que você escreveu. Nesse cenário, você provavelmente não deseja reverter a coisa toda, apenas uma função. Sem tocar na CLI do Git, você pode copiar o código dessa função.

Revertendo um arquivo Git para uma versão antiga

Fizemos um commit neste repositório de teste que alterou o README e adicionou um novo arquivo. Queremos desfazer as modificações do README, mas não queremos restaurar todo o repositório para o primeiro commit.

A resposta é redefinir apenas o README baixando uma versão mais antiga desse arquivo. O comando checkout do Git pode realizar várias coisas, como alternar entre branches, embora seja frequentemente usado para baixar dados com base em um commit ou ID de branch.

Para restaurar um arquivo para uma versão anterior, localize o ID do commit de quando você deseja restaurá-lo. Você pode usar o git log com um único arquivo com escopo para ver apenas as alterações feitas nesse arquivo:

git log README.md

Copie o ID do commit e execute o git checkout com o ID e o caminho do arquivo:

git checkout 22710694b25d7ce5297559851beb7d3e4de811bb README.md

Isso alterará o arquivo de volta, mas ainda não confirmará as alterações. Você é livre para fazer alterações e se comprometer quando estiver pronto.

Nesse caso, o git checkout marcou as modificações como prontas para o próximo commit. Se você não deseja confirmar as modificações, você pode fazê-lo. Isso pode ser útil para baixar temporariamente versões mais antigas de arquivos sem usar o Github.

Revertendo alterações em arquivos individuais

Da mesma forma, você pode usar git revert para desfazer as modificações feitas em um único commit. Não há como aplicá-lo a um único arquivo, porém se o commit impactar outros arquivos, apenas rejeite as modificações.

Use the —no-commit switch to enable modification of the “revert commit” that Git generates automatically.

git revert de8564b131ca6a15a7e7c73f5ef156b119cc0b93

Isso permite que você faça alterações nos arquivos antes de concluir a reversão. Se houver alterações indesejadas que foram preparadas, você pode apagá-las usando seu cliente ou um checkout git vazio.

git checkout -- arquivo

você pode gostar

Navhow é dedicado a ensinar as pessoas de todo o mundo como fazer qualquer coisa.

 

Se inscrever

O melhor boletim informativo de instruções em qualquer lugar

©2022 Navhow, Todos os direitos reservados