1
resposta

resposta incorreta?

No enunciado está escrito: " histórico de commits do repositório ". Fiquei com dúvida na resposta correta, pois pelo o que entendi (posso ter entendido errado) o git reset irá excluir os comites posteriores ao desejado, deixando o repositório LOCAL apontando para o target especificado. Enquanto isso o git revert, não irá apagar os commits posteriores ao target, mas sim fará um novo commit no repositório REMOTO, e não no local.

Em resumo, o git reset seria utilizado para commits locais, ainda não enviados, enquanto o git revert seria utilizado para re-commitar uma versão no diretório remoto.

Agora a minha dúvida é se eu entendi errado e o git reset pode também ser usado para repositórios remotos compartilhados?

EDIT: Ambos comandos podem ser utilizados para alterar commits no repositório remoto. Em resumo, o reset irá apagar o histórico dos commits posteriores ao target no comando, enquanto o revert irá manter o histórico dos commits, irá "re-criar" um commit com as informações do commit target do comando, e neste caso vale lembrar que o comando de git push deve ser rodado para poder efetivamente executar o commit (após o revert).

1 resposta

Olá, Álvaro! Como vai?

O comando git reset --hard <id_do_commit_anterior> é usado para redefinir o histórico de commits no repositório local, removendo todos os commits posteriores ao commit especificado. Isso é útil quando você ainda não compartilhou essas alterações com um repositório remoto, pois altera o histórico de commits, o que pode causar problemas se já tiver sido compartilhado.

Por outro lado, o comando git revert <id_do_commit> cria um novo commit que desfaz as alterações do commit especificado, preservando o histórico de commits. Isso é mais seguro para usar em repositórios remotos compartilhados, já que não altera o histórico, mas sim adiciona um novo commit que "anula" as alterações indesejadas.

No contexto da sua dúvida, parece que a questão se refere a remover um commit indesejado do histórico. A resposta correta, conforme o exercício, seria a opção A: git reset --hard <id_do_commit_anterior>, pois é a maneira de remover efetivamente um commit do histórico local. No entanto, é importante ter cuidado ao usar este comando em um repositório que já foi compartilhado, pois pode causar inconsistências para outros colaboradores.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.