🎯 Saiba o que estudar

Avançado com Treinador a partir de R$ 0,76/dia

Com base nessa situação hipotética, assinale a opção correta. 

Próximas questões
Com base no mesmo assunto
Q4240738 Engenharia de Software
Em certa universidade, um analista é responsável pelo desenvolvimento da feature “Renovação de empréstimos” do sistema de empréstimo de livros da biblioteca dessa universidade. Esse analista, ao terminar de desenvolver a feature, realizou o commit direto na main por meio do comando git commit ‑m “Adiciona renovação automática.”, porém descobriu que seu commit desestabilizou todo o sistema, gerando vários erros e tornando a main instável. 
Com base nessa situação hipotética, assinale a opção correta. 
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: B

Fundamento decisivo: O elemento decisivo é que a nova feature foi desenvolvida e commitada diretamente na main, quando o fluxo básico de Git pede branch própria para isolar a funcionalidade.

Tema central: branch de feature
Análise das alternativas
A
Errada
Está errada porque git pull serve para sincronizar alterações do remoto no repositório local. Isso não é a providência ideal nem necessária apenas pelo fato de um commit recém-feito ter desestabilizado a main, e não resolve o problema central de ter desenvolvido direto na branch principal.
B
Certa
A alternativa B está certa porque indica a prática adequada de criar uma branch separada, como com git checkout -b feature/renovação, antes de desenvolver a nova funcionalidade.
C
Errada
Está errada pela descrição técnica do comando. git revert HEAD pode desfazer o efeito do último commit preservando o histórico, mas não remove o commit anterior; ele cria um novo commit inverso.
D
Errada
Está errada porque git reset --soft HEAD~1 atua no histórico local, movendo o ponteiro da branch e preservando as alterações staged. A alternativa erra ao afirmar que isso remove o commit do histórico remoto; esse efeito não ocorre por si só.
E
Errada
Está errada porque git stash é usado para guardar temporariamente alterações ainda não commitadas. Não é comando para evitar o erro narrado após o commit nem substitui o isolamento da funcionalidade em branch própria.
Pegadinha da questão
A confusão explorada foi trocar a prática preventiva correta por comandos que parecem úteis depois do problema. A questão cobrava isolamento da feature em branch própria, não apenas um comando para tentar desfazer efeitos na main.
Dica para questões semelhantes
  • Se a tarefa é desenvolver nova funcionalidade, o procedimento básico é criar uma branch de feature antes de codificar.
  • Para julgar alternativas sobre Git, separe comando de sincronização, comando de desfazer e prática de branching; eles não têm a mesma finalidade.
  • git revert preserva o histórico porque cria novo commit inverso; não se deve tratá-lo como remoção do commit anterior.
  • git reset --soft HEAD~1 não deve ser interpretado como alteração automática do histórico remoto.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo