Pular para o conteúdo principal

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

Engenharia de SoftwareGerência de Configuração
Código
fg098573
Banca
FGV
Órgão
TJ-MS
Ano
2024
Nível
Superior
Cargo
Técnico de Nível Superior - Analista de Sistemas Computacionais - Web Designer
A analista Joana está desenvolvendo um projeto com o apoio da ferramenta de versionamento de código Git. Sua cópia de trabalho atual está apontando para o branch tarefa-um. Joana precisa aplicar dois commits específicos e não sucessivos, do branch tarefa-dois, na sua cópia de trabalho.Para realizar a operação por meio da ferramenta de linha de comando git, ela deve empregar o seguinte comando do git:
  1. Adiff;
  2. Bapply;
  3. Crevert;
  4. Drebase;
  5. Echerry-pick.
Revelar gabarito e comentário

GabaritoE — cherry-pick.

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”.

Comando Git para aplicar commits específicos entre branches

Gabarito: letra E. O comando git cherry-pick é utilizado para aplicar um ou mais commits específicos de uma branch em outra, mesmo que não sejam consecutivos, exatamente o que Joana precisa ao selecionar dois commits não sucessivos do branch tarefa-dois e aplicá-los no branch tarefa-um.

A banca testa o conhecimento dos comandos básicos do Git, principalmente aqueles que manipulam o histórico entre branches. O enunciado descreve uma situação muito comum: pegar mudanças pontuais de outra linha de desenvolvimento sem mesclar a branch inteira.

Comando

Função principal

Aplica commits específicos entre branches?

Adequado para o cenário?

diff

Exibe diferenças entre commits, branches ou diretório de trabalho

Não

❌

apply

Aplica um arquivo de patch no diretório de trabalho

Não (não opera diretamente sobre commits entre branches)

❌

revert

Desfaz um commit criando um novo commit reverso

Não (atua sobre o branch atual)

❌

rebase

Reaplica commits de uma branch sobre outra, reescrevendo o histórico

Não (não permite selecionar commits específicos e não sucessivos de forma direta)

❌

cherry-pick

Aplica um ou mais commits específicos de uma branch em outra

Sim

✅

Alternativa A — ❌ Incorreta

O comando git diff exibe as diferenças entre commits, branches ou o diretório de trabalho e o índice. Ele não aplica nenhuma alteração; apenas mostra o que é diferente. Portanto, não serve para trazer commits de outra branch para a cópia de trabalho.

Alternativa B — ❌ Incorreta

git apply é usado para aplicar um arquivo de patch (gerado por git diff ou git format-patch) no diretório de trabalho. Embora possa aplicar alterações, ele não opera diretamente sobre commits de uma branch para outra e não é a ferramenta adequada para pegar commits específicos entre branches.

Alternativa C — ❌ Incorreta

git revert desfaz um commit criando um novo commit que reverte as alterações. Ele é usado para desfazer mudanças já aplicadas, e não para trazer commits de outra branch. Além disso, atua sobre o branch atual, não busca commits de outra branch.

Alternativa D — ❌ Incorreta

git rebase reaplica commits de uma branch sobre outra, reescrevendo o histórico. Ele é útil para linearizar o histórico, mas quando aplicado sobre uma branch inteira (ou um intervalo de commits), não permite escolher commits específicos e não sucessivos. Para pegar apenas dois commits soltos, o rebase exigiria manipulação mais complexa (como git rebase --onto), enquanto o cherry-pick é direto e simples para esse cenário.

PEGA ESSA DICA!

Para aplicar commits individuais entre branches, use git cherry-pick <commit1> <commit2> .... Se quiser trazer toda uma branch, use git merge ou git rebase. O cherry-pick é ideal quando se deseja apenas algumas alterações pontuais, sem mesclar a branch inteira.

Alternativa E — ✅ Correta ⟵ GABARITO

O comando git cherry-pick é exatamente a ferramenta para essa tarefa. Conforme descrito no material de apoio, "o comando git cherry-pick é usado para aplicar um ou mais commits específicos de uma branch para outra". Com ele, Joana pode executar git cherry-pick <hash-do-commit1> <hash-do-commit2> estando no branch tarefa-um, e os dois commits selecionados do tarefa-dois serão aplicados na sua cópia de trabalho.

Gabarito: letra E.

Link permanente: /questoes/fg098573