Questão de Engenharia de Software — Git — CESPE / CEBRASPE 2025
- Código
- ce417762
- Banca
- CESPE / CEBRASPE
- Órgão
- TRF 6
- Ano
- 2025
- Cargo
- AJ TRF6
- CCerto
- EErrado
GabaritoC — Certo
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.
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.
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