Git reset –hard –soft
Levando em consideração que o git basicamente pode ser visto como uma arvore com várias ramificações a partir de uma ramificação principal.
Sendo assim, o topo/ponta/cabeça dessas ramificações é denominado como head.
O git reset é um comando usado para desfazer alterações no estado de uma ramificação de repositório do Git.
O comando git set é composto principalmente por 2 parâmetros, um informando o tipo e outro quantos commits devem ser resetados a partir do topo da ramificação.
git reset --<tipo> <head>
Temos alguns tipos diferentes de reset, neste tutorial vou descrever apenas dois, o –hard e o –soft.
Git reset hard
Com o git reset hard você pode alterar sua branch e desfazer alterações mesmo após ter feito commit.
Para realizar o hard reset iremos executar o seguinte comando:
git reset --hard head~2
CUIDADO! Quando utilizamos o git reset com o parâmetro hard, as alterações feitas nas sua branch será desfeita, porém, todo o código alterado será perdido!!!
Exemplo: Se nossa branch possui 3 commits e fazemos o comando acima, estamos “voltando” dois commits e descartando as alterações.
Git reset soft
Com o git reset soft podemos desfazer alterações feitas na branch, da mesma forma que o hard reset, porém, o conteúdo dos commits desfeitos ser serão mantidos em stage para que possamos realizar alguma outra decisão, de edição e ou commit.
git reset --soft head~2
Exemplo: Se nossa branch possui 3 commits e fazemos o comando acima, estamos “voltando” dois commits e mantendo as alterações em stage.