Questão de Engenharia de Software — Gerência de Configuração — FGV 2024
Engenharia de Software›Gerê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:
Aexecutou imediatamente o comando git checkout master, sem alterações;
Balterou o escopo do fetch na configuração do git e logo após efetuou o checkout;
Cexecutou imediatamente o comando git checkout master, com o argumento unshallow;
Dexecutou o comando fetch com o argumento all e só então executou o comando git checkout master;
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.
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 é:
git fetch --unshallow — converte o repositório shallow em completo, baixando o histórico faltante.
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" — altera o escopo do fetch para incluir todas as branches.
git fetch — baixa as referências de todas as branches (inclusive master).