Pular para o conteúdo principal

Questão de Engenharia de Software — Git — CESPE / CEBRASPE 2024

Engenharia de SoftwareGit
Código
ce403891
Banca
CESPE / CEBRASPE
Órgão
STJ
Ano
2024
Cargo
AJ

Julgue os próximos itens, relativos a H2, Keycloak, Webhooks, Git, CD (continuous delivery) e CI (continuous integration).

 

O comando Git a seguir, ao ser executado, copiará todo o conteúdo do repositório local para o repositório remoto git, e, por padrão, fará a mesclagem com a branch master.

 

git clone --bare -l /home/projetox/
.git/pub/projetox

  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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

Git: clone --bare e o fluxo de mesclagem

Gabarito: Errado (E). O comando git clone --bare -l /home/projetox/ .git/pub/projetox cria uma cópia do repositório local em um repositório remoto, mas não realiza nenhuma mesclagem com a branch master — o clone apenas copia o histórico e os objetos do repositório, sem qualquer operação de merge. A afirmação de que "por padrão, fará a mesclagem com a branch master" é incorreta, pois o clone não executa merge; ele apenas replica o repositório.

O comando git clone é uma das operações fundamentais do Git, o sistema de controle de versão distribuído. Ele serve para criar uma cópia de um repositório existente. Quando você executa git clone, o Git copia todos os objetos do repositório de origem (commits, branches, tags) para um novo diretório. A opção --bare indica que o repositório clonado será um repositório "pelado", ou seja, sem um diretório de trabalho (working directory) — ele contém apenas os arquivos internos do Git (a pasta .git), sendo usado tipicamente como repositório central para compartilhamento. A opção -l (ou --local) informa que a origem é um repositório local, evitando a cópia via protocolo de rede.

O ponto central da questão é o que o clone faz com as branches. Ao clonar, o Git cria uma branch local (geralmente master ou main) que rastreia a branch correspondente do repositório remoto. No entanto, o clone não realiza nenhuma mesclagem (merge) automática. A mesclagem é uma operação que combina alterações de diferentes branches, e ela só ocorre quando você executa git merge ou git pull (que internamente faz fetch + merge). O clone simplesmente copia o estado atual do repositório, sem combinar nada.

Para entender melhor, veja a diferença entre as operações:

Operação

O que faz

Realiza merge?

git clone

Copia um repositório inteiro para um novo local

Não

git fetch

Baixa objetos e referências do remoto, mas não altera o working directory

Não

git pull

Faz fetch e depois merge (ou rebase) da branch remota na branch local

Sim

git merge

Combina alterações de duas branches

Sim

A pegadinha da questão está em afirmar que o clone "fará a mesclagem com a branch master". Isso é um erro conceitual: o clone não mescla nada. Se o objetivo fosse atualizar um repositório local com as alterações do remoto, o comando correto seria git pull, que sim realiza a mesclagem. O clone é uma operação de cópia inicial, não de atualização.

Outro detalhe: o comando apresentado tem uma sintaxe estranha — git clone --bare -l /home/projetox/ .git/pub/projetox. O destino .git/pub/projetox sugere que o repositório clonado será criado dentro de um diretório .git, o que é incomum, mas não invalida a análise principal. O erro fundamental permanece: não há mesclagem no clone.

NÃO CAIA NESSA!

A banca tenta confundir o candidato ao afirmar que o clone realiza merge. Na verdade, o clone apenas copia o repositório; a mesclagem é feita por git merge ou git pull. Lembre-se: clone = cópia, pull = atualização com merge.

Item — ❌ Errado

A afirmação está incorreta porque o comando git clone não realiza mesclagem com a branch master. O clone copia o repositório, mas não combina branches. A mesclagem é uma operação separada, executada por git merge ou git pull. Portanto, o item é Errado.

Gabarito: Errado (E).

Link permanente: /questoes/ce403891