Questão de Engenharia de Software — Ferramentas de Desenvolvimento de Software — FUNDATEC 2026
Engenharia de Software›Ferramentas de Desenvolvimento de Software
Código
qg685952
Banca
FUNDATEC
Órgão
IFC-SC
Ano
2026
Nível
Superior
Cargo
Professor EBTT - Informática: Engenharia de Software e Banco de Dados
Durante o processo de versionamento de um software utilizando o Git, um desenvolvedor executou um commit em seu repositório local. Imediatamente após a ação, ele percebeu que havia executado o comando muito cedo: esqueceu de adicionar um arquivo importante à área de preparação (stage) e escreveu a mensagem descritiva de forma equivocada. Como o commit ainda não foi enviado para o repositório remoto, o desenvolvedor deseja refazê-lo, incorporando o arquivo esquecido e corrigindo a mensagem, de modo a sobrescrever o registro anterior sem criar um commit adicional no histórico. Após adicionar o arquivo pendente ao stage, qual é o comando a se executar para atingir esse objetivo diretamente, sem a necessidade de comandos adicionais?
Agit commit --amend
Bgit revert --commit
Cgit reset --soft HEAD~1
Dgit rebase --interactive
Egit restore --staged
Revelar gabarito e comentário▾
GabaritoA — git commit --amend
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Git — Comando git commit --amend
Gabarito: letra A. O comando git commit --amend é a ferramenta correta para modificar o último commit, permitindo adicionar arquivos esquecidos e corrigir a mensagem, sobrescrevendo o commit anterior sem criar um novo no histórico.
1Adicionar arquivo ao stage
2git commit --amend
3Corrigir mensagem no editor
4Commit substituído (histórico limpo)
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
O git commit --amend atende exatamente ao cenário: após adicionar o arquivo ao stage, ele incorpora as mudanças ao último commit e abre o editor para corrigir a mensagem. O commit original é substituído por um novo commit com o mesmo histórico pai, sem poluir o histórico com commits adicionais.
Alternativa B — ❌ Incorreta
git revert --commit não é um comando válido do Git. O correto seria git revert <commit>, que cria um novo commit desfazendo as alterações do commit especificado — não se aplica ao objetivo de modificar o último commit.
Alternativa C — ❌ Incorreta
git reset --soft HEAD~1 remove o último commit da história, mas mantém as alterações na área de staging. O desenvolvedor ainda precisaria executar um novo git commit para criar um commit substituto. O cenário pede um único comando que sobrescreva o registro anterior; esse processo exige dois comandos (reset + commit), portanto não atende diretamente.
Alternativa D — ❌ Incorreta
git rebase --interactive permite reordenar, editar ou combinar commits, mas é um comando interativo que exige vários passos (marcar o commit para edição, salvar, etc.). Não é a solução direta e imediata que o enunciado pede.
Alternativa E — ❌ Incorreta
git restore --staged é usado para remover arquivos da área de staging (desfazer git add). Ele não modifica commits e não ajuda a corrigir o commit já realizado.