Pular para o conteúdo principal

Questão de Engenharia de Software — Ferramentas de Desenvolvimento de Software — FUNDATEC 2026

Engenharia de SoftwareFerramentas 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?
  1. Agit commit --amend
  2. Bgit revert --commit
  3. Cgit reset --soft HEAD~1
  4. Dgit rebase --interactive
  5. 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.

  1. 1Adicionar arquivo ao stage
  2. 2git commit --amend
  3. 3Corrigir mensagem no editor
  4. 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.

Gabarito: letra A.

Link permanente: /questoes/qg685952