Pular para o conteúdo principal

Questão de Engenharia de Software — Gerência de Configuração — FGV 2023

Engenharia de SoftwareGerência de Configuração
Código
fg072694
Banca
FGV
Órgão
TJ-SE
Ano
2023
Nível
Superior
Cargo
Analista Judiciário - Especialidade - Análise de Sistemas - Web Designer
Carlos está resolvendo um conflito de merge em um projeto que utiliza a ferramenta de versionamento Git. A fim de elucidar o conflito, Carlos recorreu ao comando git capaz de exibir cada linha de um determinado arquivo junto a informações do último commit que modificou a linha, incluindo o autor do commit.Carlos recorreu ao comando git:
  1. Alog;
  2. Btag;
  3. Cdiff;
  4. Dstash;
  5. Eblame.
Revelar gabarito e comentário

GabaritoE — blame.

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 para exibir autor de cada linha (git blame)

Gabarito: letra E (blame). O comando git blame (ou git annotate) é a ferramenta padrão do Git que exibe, para cada linha de um arquivo, o hash do commit, o autor e a data da última modificação. É exatamente o que Carlos precisa para identificar quem alterou cada linha durante a resolução de um conflito de merge. Os demais comandos (log, tag, diff, stash) têm finalidades distintas e não fornecem essa informação linha a linha com o autor.

NÃO CAIA NESSA!

A banca confunde git log com git blame. Enquanto git log exibe o histórico de commits e pode mostrar diferenças com -p, ele não oferece uma visão linha a linha com o autor de cada alteração de forma direta. git blame é o comando específico para essa atribuição.

1git blame (✅)
Último commit de cada linha
Autor, data e hash
2git log (❌)
Histórico de commits
Sem visão linha a linha
3git diff (❌)
Diferenças entre versões
Sem autor por linha
4git tag (❌)
Marca commits (versões)
Sem conteúdo de arquivo
5git stash (❌)
Salva modificações pendentes
Sem relação com autor
Git: exibir autor por linha
LEVELsoulevel.com.br
Git: exibir autor por linha: git blame (✅) (Último commit de cada linha, Autor, data e hash); git log (❌) (Histórico de commits, Sem visão linha a linha); git diff (❌) (Diferenças entre versões, Sem autor por linha); git tag (❌) (Marca commits (versões), Sem conteúdo de arquivo); git stash (❌) (Salva modificações pendentes, Sem relação com autor)

Alternativa A — ❌ Incorreta

git log exibe o histórico de commits do repositório, mas não mostra informações linha a linha de um arquivo específico. É útil para visualizar a sequência de commits, não para atribuir cada linha a um autor.

Alternativa B — ❌ Incorreta

git tag é usado para marcar commits específicos (como versões), não para exibir conteúdo de arquivos ou autor por linha.

Alternativa C — ❌ Incorreta

git diff mostra diferenças entre commits, branches ou o diretório de trabalho, mas não exibe o autor de cada linha. É útil para ver o que mudou, não quem mudou.

Alternativa D — ❌ Incorreta

git stash salva modificações não commitadas em uma pilha para limpar o diretório de trabalho. Não tem relação com exibir informações de autor por linha.

Alternativa E — ✅ Correta ⟵ GABARITO

git blame (ou git annotate) exibe, para cada linha de um arquivo, o último commit que modificou aquela linha, incluindo o autor, data e hash. É a ferramenta ideal para rastrear a origem de alterações e resolver conflitos de merge.

Gabarito: letra E.

Link permanente: /questoes/fg072694