Uma equipe de desenvolvimento de software do fisco estadual adota o Git 2.x para versionar um sistema de arrecadação. O fluxo de trabalho inclui branches de longa duração (main e develop) e branches temporárias para features, releases e hotfixes, seguindo o modelo Git Flow. Em determinado momento, a equipe precisa corrigir um erro crítico em produção que foi introduzido pela feature calculo-imposto, já mesclada na branch main. O commit que introduziu o erro é a1b2c3d, e o commit imediatamente anterior, que representa o estado correto, é e4f5g6h. A branch main possui commits posteriores a a1b2c3d que não podem ser descartados. O gerente solicita que a correção seja feita de forma a manter o histórico linear, sem criar um commit de merge, e que a branch main resultante contenha apenas os commits existentes, exceto o commit defeituoso, preservando a ordem cronológica dos demais. Um analista propõe executar os seguintes comandos, em sequência, a partir da branch main:
git rebase --onto e4f5g6h a1b2c3d main git cherry-pick a1b2c3d git revert a1b2c3d
Considerando o funcionamento do Git 2.x e as boas práticas de versionamento, a proposta do analista é:
Selecione uma alternativa pra criar sua conta e salvar o progresso.