Questão de Engenharia de Software — Git — CESPE / CEBRASPE 2024
Engenharia de Software›Git
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.
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.