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
fg101727
Banca
FGV
Órgão
TRF - 1ª REGIÃO
Ano
2024
Nível
Superior
Cargo
Técnico Judiciário - Área Administrativa - Especialidade: Desenvolvimento de Sistemas de Informação
Para realizar o clone de um único branch de um repositório git, a analista Ana utilizou o comando ‘git clone --depth 1 --branch q07 https://trf1.br/ana/repo07.git’. Após concluir o trabalho necessário no branch q07, Ana precisou recuperar o histórico completo de commits e realizar o checkout para o branch master, sem efetuar um novo clone.Para realizar as operações necessárias, a analista:
  1. Aexecutou imediatamente o comando git checkout master, sem alterações;
  2. Balterou o escopo do fetch na configuração do git e logo após efetuou o checkout;
  3. Cexecutou imediatamente o comando git checkout master, com o argumento unshallow;
  4. Dexecutou o comando fetch com o argumento all e só então executou o comando git checkout master;
  5. Eefetuou o unshallow do clone e alterou o escopo do fetch na configuração do git, para só então efetuar novo fetch e checkout.
Revelar gabarito e comentário

GabaritoE — efetuou o unshallow do clone e alterou o escopo do fetch na configuração do git, para só então efetuar novo fetch e checkout.

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

Gerência de Configuração – Git: Shallow Clone e Recuperação de Histórico

Gabarito: letra E. Após um clone superficial (--depth 1) de um único branch, para recuperar o histórico completo e acessar outro branch é necessário: (1) converter o clone em completo com git fetch --unshallow; (2) ajustar a configuração do fetch para incluir todas as branches (git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"); (3) executar git fetch para baixar as demais branches; e (4) realizar o git checkout para a branch desejada. A alternativa E descreve exatamente essa sequência.

A questão testa o entendimento de shallow clones e as etapas necessárias para obter o histórico completo sem realizar um novo clone.

Etapa

Descrição

Comando / Ação

Necessário?

1

Converter clone superficial em completo

git fetch --unshallow

Sim

2

Ajustar escopo do fetch para todas as branches

git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"

Sim

3

Baixar referências de todas as branches

git fetch

Sim

4

Mudar para a branch master

git checkout master

Sim

  1. 1git fetch --unshallow
  2. 2Configurar escopo do fetch
  3. 3git fetch
  4. 4git checkout master
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Simplesmente executar git checkout master falha porque a branch master não existe localmente — apenas q07 foi clonada.

Alternativa B — ❌ Incorreta

Alterar o escopo do fetch sem executar git fetch não baixa as referências remotas; o checkout continuaria sem a branch master.

Alternativa C — ❌ Incorreta

O comando git checkout não aceita o argumento --unshallow. Esse argumento é exclusivo do git fetch.

Alternativa D — ❌ Incorreta

git fetch --all baixa atualizações de todos os remotos, mas não converte um clone shallow em completo. Sem --unshallow, o histórico permanece truncado e branches não baixadas originalmente continuam ausentes.

Alternativa E — ✅ Correta ⟵ GABARITO

A sequência correta é:

  1. git fetch --unshallow — converte o repositório shallow em completo, baixando o histórico faltante.

  2. git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" — altera o escopo do fetch para incluir todas as branches.

  3. git fetch — baixa as referências de todas as branches (inclusive master).

  4. git checkout master — muda para a branch master.

A alternativa E contempla todas essas etapas.

Gabarito: letra E

Link permanente: /questoes/fg101727