2
respostas

Dúvida na aula sobre descartar alterações

Na aula em que o professor ensina sobre como descartar alterações usando o Git, na hora que ele executa o git status, exibe as informações onde mostra para utilizar o git add para adicionar a alteração e depois commitar ela. Até ai tudo sem problemas.

Na linha abaixo, quando mostra o que deve ser usado para descartar a alteração. na git bash do professor e o próprio dizem para utilizar o "git checkout -- ...". Porém,no meu git bash ele informa outra declaração para descartar... ele informa para usar "git restore ..." .

Por que há essa diferença? Os dois tem a mesma função ou são distintos?

2 respostas

Já descobri que o "git reset" está na nova versao 2.23.0 do Git para fazer a mesma função do "git checkout --".

Agora estou procurando se o "git reset HEAD " também pode ser substituido pelo "git restore --staged ", pois o reset aparece no terminal do professor enquanto no meu terminal aparece o restore --staged

Olá Igor, tudo bem?

Vou tentar resumir cada comando para você:

Resumo comandos git para descartar alterações


ComandoDescrição
git checkoutDesfaz uma alteração que ainda não foi adicionada, ou seja, antes do git add. De acordo com a documentação, está na versão 2.32.0 e possui diversas outras funcionalidades.
git resetDesfaz uma alteração adicionada mas não commitada, ou seja, antes do git commit. De acordo com a documentação, também está na versão 2.32.0 e tem como funcionalidade principal redefir o HEAD.
git revertDesfaz uma alteração adicionada e commitada, ou seja, depois do git commit. De acordo com a documentação, também está na versão 2.32.0 e tem como funcionalidade principal reverter commits existentes.
git restoreRealmente é um comando recente que possui uma função semelhante ao git checkout, mas ele é específico para restaurar arquivos ou projetos por completo, já o git checkout possui outras diversas funcionalidades também. De acordo com a documentação, ele foi criado na versão 2.32.0 e tem como funcionalidade principal restaurar arquivos.

Espero que esse resuminho te ajude. E realmente todos esses termos podem confundir, fato que explica a criação do comando git restore. Ele foi criado na versão 2.32.0 com o objetivo de pegar uma responsabilidade do git checkout, tendo em vista que ele já tinha muitas, além de tornar o novo comando mais específico.

Mas como todos os comando citados estão na última versão, você pode escolher qual utilizar. Pode ser que nas próximas versões isso mude, mas por enquanto pode utilizar o comando que você julgar melhor.

E caso queira ler um pouco mais, aqui na Alura temos um artigo sobre o assunto:

Espero que tenha te ajudado e, qualquer coisa, estamos à disposição!

Bons estudos :)