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