Pular para o conteúdo principal

Questão de Engenharia de Software — Git — CESPE / CEBRASPE 2025

Engenharia de SoftwareGit
Código
ce417762
Banca
CESPE / CEBRASPE
Órgão
TRF 6
Ano
2025
Cargo
AJ TRF6
A respeito de Git e Github, julgue o item a segjuir.   O comando merge é limitado à combinação de duas branches, sendo verificadas as sequências em comum entre elas, o que dá origem a um novo commit.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

Esta resolução diverge do gabarito oficial. A banca deu Certo; a resolução abaixo sustenta o contrário e explica por quê — ela não foi reescrita para concordar. Acontece nos dois sentidos: há gabarito que cai em recurso e há resolução que erra. Confira na fonte antes de fixar o entendimento.
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: o comando merge e a combinação de branches

Gabarito: Errado (E). O comando merge no Git não é limitado à combinação de apenas duas branches — ele pode combinar múltiplas branches em uma única operação, e o resultado nem sempre é um novo commit (em um fast-forward, por exemplo, não há commit de merge). A afirmativa erra ao restringir o merge a duas branches e ao afirmar que sempre gera um novo commit.

O merge é uma das operações centrais do Git, um sistema de controle de versão distribuído. Ele serve para integrar as alterações de uma ou mais branches em outra branch. Quando você executa git merge <branch>, o Git procura o ancestral comum entre a branch atual e a branch informada, e aplica as diferenças. O resultado pode ser:

  • Fast-forward: se a branch atual não teve commits desde o ponto de divergência, o Git simplesmente avança o ponteiro da branch atual para o commit da outra branch, sem criar um commit de merge.

  • Merge commit (three-way): se as branches divergiram, o Git cria um novo commit que combina as histórias, unindo as alterações de ambas.

Além disso, o Git permite mesclar mais de duas branches de uma só vez, usando o comando git merge branch1 branch2 branch3. Nesse caso, o Git combina todas as branches listadas na branch atual, criando um único merge commit (se necessário). Portanto, a afirmação de que o merge é "limitado à combinação de duas branches" é falsa.

A pegadinha da banca está em simplificar demais o conceito, apresentando o merge como uma operação restrita a duas branches e sempre geradora de um novo commit. Na prática, o merge é flexível: pode envolver múltiplas branches e, em cenários de fast-forward, não cria commit de merge. O candidato que memoriza a definição básica sem explorar os casos especiais tende a marcar "Certo", mas a afirmativa é incorreta.

Merge (git)
  • 1Quantas branches?
    • Duas (caso comum)
    • Múltiplas (branch1 branch2 branch3)
  • 2Resultado
    • Fast-forward
      • Sem commit de merge
      • Avança o ponteiro
    • Merge commit (three-way)
      • Histórias divergentes
      • Novo commit combina
LEVEL · soulevel.com.br

Alternativa C — ❌ Incorreta

A afirmativa está incorreta porque o comando merge não é limitado à combinação de apenas duas branches. O Git permite mesclar múltiplas branches de uma só vez, como em git merge branch1 branch2 branch3, que integra todas as branches listadas na branch atual. Além disso, a afirmativa diz que o merge "dá origem a um novo commit", o que nem sempre ocorre: em um fast-forward, o ponteiro da branch é simplesmente avançado para o commit da outra branch, sem criar um commit de merge. Portanto, a descrição apresentada é uma simplificação incorreta do comportamento real do comando.

NÃO CAIA NESSA!

Para não errar em questões sobre merge, lembre-se dos dois cenários principais: fast-forward (sem commit de merge) e merge commit (quando há divergência). Além disso, o merge pode envolver mais de duas branches — não caia na armadilha de achar que é sempre binário.

Gabarito: Errado (E).

Link permanente: /questoes/ce417762