Desfazendo alterações no repositório

Comandos importantes

1. git restore

Descarta todas as alterações que você fez localmente.

Uma vez salvo, o repositório fica com essa versão armazenada, mantendo a integridade de todos os arquivos.

Digamos que você delete o arquivo X e o arquivo Y, e adicione o arquivo Z, tudo isso localmente, no seu computador, porém não dê commit nem push.

Ao usr o comando git restore, o repositório voltará a ser exatamente como no último push, deletando na sua máquina o arquivo Z, e restaurando os arquivos X e Y.

2. git commit --amend -m"[mensagem]"

Com esse comando, é possível mudar a mensagem do último commit feito.

3. git reset

Esse comando serve para voltar a um commit anterior. Ele possui 3 variações:

• git reset --soft [head do commit que você quer usar como ponto de retorno]

Com esse comando você volta para o commit escolhido, mas mantém as alterações prontas para serem commitadas denovo na staging area, como se você já tivesse feito o git add ., sem modificar os arquivos locais.

• git reset --mixed [head do commit que você quer usar como ponto de retorno]

Com esse comando você volta para o commit escolhido, mas retira as alterações da staging area, necessitando passar um git add . caso queria dar commit nos arquivos alterados.

Acompanhe as anotações em vermelho.

mostrando-reset-mixed

Nesse exemplo tinhamos os commits 1; 2 e 3; respectivamente. Passamos o comando git reset --mixed para voltar as mudanças computadas para o estado que estavam no commit 2; descartando tudo do commit 3. A diferença do comando git reset --soft para esse, é que nesse as mudanças ficam aguardando para serem adicionadas, fazendo necessário que você passe um git add . caso queira commita-las, como citado anteriormente. Esse comando não faz alterações nos arquivos locais.

• git reset --hard [head do commit que você quer usar como ponto de retorno]

Com esse comado você volta para o commit escolhido, porém muda localmente os arquivos para o estado em que estavam no momento do commit. É muito útil, porém CUIDADO ao usar, pois se usar incorretamente, terá que refazer todas as alterações nos arquivos manualmente.

4. Outro uso para o git reset

Você também pode usar dessa forma: git reset [nome do arquivo] para remover arquivos da staging area.

mostrando-git-restore