Git Revert vs Git Reset: Desfazendo e ajustando mudanças no histórico do Git

Git Revert e Git Reset são dois comandos importantes no Git para desfazer e ajustar alterações no commit histórico de um repositório. Aqui está um guia sobre como usar Git Revert e Git Reset:

 

Git Revert

  • Git Revert permite que você crie um novo commit para desfazer( revert) alterações feitas anteriormente.

  • Para revert um commit, use o seguinte comando:

    git revert <commit_id>
    

    Substitua <commit_id> pelo ID do que commit você deseja reverter. Um novo commit será criado, desfazendo as alterações no arquivo commit.

  • Revert não altera a commit história, mas cria uma nova commit para reverter as mudanças.

 

Git Reset

  • Git Reset permite que você volte a um estado anterior movendo o HEAD e branch atual para um commit específico.

  • Git Reset tem três modos diferentes: --soft, --mixed(default), and --hard.

  • Para reset o HEAD ramo atual e para a commit, use o seguinte comando:

    git reset --mode <commit_id>
    

    Substitua <commit_id> pelo ID do que commit você deseja redefinir.

  • Git Reset modos:

    • -soft: Move o HEAD e branch atual para o especificado commit, mantendo as alterações do anterior commit na área de staging. Use o comando git reset --soft <commit_id>.
    • --mixed: Este é o modo padrão. Move o HEAD e branch atual para o commit especificado e remove as alterações do anterior commit da área de teste. Use o comando git reset --mixed <commit_id>.
    • --hard: Move o HEAD ramo e atual para o especificado commit e descarta todas as alterações do anterior commit. Seja cauteloso ao usá-lo, pois quaisquer alterações não confirmadas serão perdidas. Use o comando git reset --hard <commit_id>.
    <commit_id>.
  • Git Reset altera o commit histórico e pode resultar em perda de dados, portanto, use-o com cuidado.

 

Git Revert e Git Reset são ferramentas poderosas para desfazer e ajustar o histórico de commits no Git. Use-os com cuidado para garantir a estabilidade do projeto e evitar a perda de dados.