Editado 3 meses atrás por ExtremeHow Equipe Editorial
GitReversãoReverterJanelasMacLinuxLinha de comandoControle de versãoControle de VersãoSolução de problemasDesenvolvimento
Tradução atualizada 3 meses atrás
No mundo de hoje, o desenvolvimento de software frequentemente envolve várias pessoas trabalhando juntas no mesmo código. Para gerenciar essa colaboração de forma eficaz, os desenvolvedores usam sistemas de controle de versão como o Git. Git é um poderoso e amplamente utilizado sistema de controle de versão que ajuda os desenvolvedores a rastrear mudanças em seu código, trabalhar com outros e gerenciar diferentes versões de seus projetos. Uma das tarefas mais importantes que os desenvolvedores frequentemente precisam realizar é reverter mudanças. Reverter mudanças no Git é uma maneira de desfazer ou reverter mudanças que foram feitas no código em casos onde algo deu errado ou quando as mudanças originais não são mais necessárias.
Antes de entrar nos detalhes de reverter mudanças no Git, é importante entender o que é o Git e por que ele é importante. Git é um sistema de controle de versão distribuído e de código aberto criado por Linus Torvalds em 2005. Ele permite que múltiplos desenvolvedores trabalhem simultaneamente em um projeto sem sobrescrever o trabalho um do outro.
O Git é importante porque registra todas as mudanças feitas no código, fornecendo um histórico completo do projeto. Este histórico é benéfico porque permite que os desenvolvedores olhem para os estados anteriores do projeto, entendendo quais mudanças foram feitas e quem as fez. Se uma mudança recente introduzir um bug ou erro, o histórico do Git possibilita identificar e reverter essas mudanças.
No desenvolvimento de software, existem vários cenários em que você pode precisar reverter alterações no Git:
git add
) e quer removê-las.O Git oferece vários comandos para reverter alterações em diferentes estágios do processo de desenvolvimento. Vamos dar uma olhada nesses comandos e aprender como usá-los:
O comando git checkout
pode ser usado para trocar de ramos, mas também é útil para reverter alterações no seu diretório de trabalho. Se você fez alterações em um arquivo que deseja apagar, pode usar o seguinte comando:
git checkout -- <nome-do-arquivo>
Este comando restaura o arquivo especificado ao último estado cometido. Isto é útil quando as alterações são indesejadas ou se você fez modificações temporárias que precisam ser removidas.
O comando git revert
é usado para criar um novo commit que desfaz as alterações feitas por um commit anterior. Esta abordagem é mais segura que alguns outros métodos porque não remove o commit existente. Em vez disso, adiciona um novo commit que desfaz o commit especificado.
git revert <hash-do-commit>
Este comando é especialmente útil quando as alterações foram enviadas para um repositório compartilhado. Reverter um commit cria um novo commit com as alterações opostas.
O comando git reset
é versátil, permitindo que você reverta alterações na área de estágio e/ou no diretório de trabalho. Aqui está uma descrição do seu uso:
git reset <hash-do-commit>
Este comando move o ramo atual para o commit especificado. Por padrão, isso afeta o índice (área de estágio) e o head (onde o ramo atualmente aponta), mas não o diretório de trabalho.
git reset HEAD <nome-do-arquivo>
Se você adicionou arquivos à área de estágio e quer removê-los, use este comando. Isso reseta o(s) arquivo(s) no diretório de trabalho, removendo-os do índice.
git reset --hard <hash-do-commit>
Este comando não só reseta o head atual para o commit especificado, mas também atualiza o diretório de trabalho para coincidir com esse commit. Todas as alterações feitas após este commit em ambas a área de estágio e o diretório de trabalho são perdidas. Use este comando com cautela, pois um reset duro não pode ser facilmente revertido.
O comando git clean
é usado para remover arquivos não rastreados do diretório de trabalho. Estes são arquivos que foram criados ou alterados, mas ainda não foram cometidos.
git clean -f
Este comando apagará quaisquer arquivos não rastreados. Se você quiser apagar diretórios também, pode usar:
git clean -fd
Suponha que você fez modificações em um arquivo chamado example.txt
e depois decidiu descartar essas alterações. Você pode desfazer suas alterações usando o seguinte comando:
git checkout -- example.txt
Este comando restaurará o example.txt
ao seu último estado cometido.
Se você acidentalmente fez um commit e quer desfazer seus efeitos, pode usar git revert
. Vamos dizer que o hash do commit seja abc1234
:
git revert abc1234
Este comando criará um novo commit que reverterá as alterações feitas pelo commit abc1234
. Isso é especialmente útil ao trabalhar com repositórios compartilhados.
Se você preparou um arquivo chamado data.csv
e quer removê-lo da área de preparação, use:
git reset HEAD data.csv
Este comando remove data.csv
da área de preparação, deixando suas alterações intactas no diretório de trabalho.
Para resetar seu ramo atual para o commit anterior identificado pelo hash def5678
, e remover todas as alterações subsequentes tanto da área de preparação quanto do diretório de trabalho, use:
git reset --hard def5678
Importante: tenha cuidado, pois esta abordagem remove permanentemente as alterações após o commit def5678
.
Reverter alterações no Git é uma habilidade vital para desenvolvedores. Seja para desfazer um commit recente, remover alterações da preparação ou reverter modificações em seus arquivos, o Git possui os comandos apropriados para lidar com essa tarefa. Com um entendimento de comandos como git checkout
, git revert
, git reset
e git clean
, torna-se mais fácil lidar com erros e alterações indesejadas.
É importante usar esses comandos com cuidado, especialmente aqueles que mudam permanentemente o seu diretório de trabalho ou histórico de commits. Sempre considere se um simples desfazer ou um processo de rollback mais complexo é necessário para o seu cenário.
À medida que se familiariza mais com o Git, você descobrirá que suas habilidades para gerenciar versões e colaborar eficientemente são ferramentas indispensáveis no desenvolvimento de software. Reverter alterações é apenas uma das muitas capacidades que tornam o Git uma parte indispensável do kit de ferramentas do desenvolvedor.
Se você encontrar algo errado com o conteúdo do artigo, você pode