O uso de sistemas de controle de versão é indispensável para...

Próximas questões
Com base no mesmo assunto
Q3832911 Engenharia de Software
O uso de sistemas de controle de versão é indispensável para o desenvolvimento colaborativo de software. Analise as afirmativas a seguir sobre o funcionamento do Git e fluxos de trabalho.

I- O comando git merge combina históricos de ramos diferentes, criando um commit de mesclagem que preserva a genealogia completa das alterações realizadas em ambos os ramos.
II- O arquivo .gitignore é utilizado para listar arquivos e diretórios que não devem ser rastreados pelo Git, como binários compilados, arquivos de configuração local e dependências.
III- O comando git pull é uma operação atômica que apenas baixa as alterações do repositório remoto sem realizar qualquer alteração ou mesclagem no ramo local de trabalho.
IV- O conceito de 'Head' no Git representa um ponteiro para o commit mais recente no ramo atualmente ativo no diretório de trabalho do desenvolvedor.

Assinale a alternativa que apresenta somente as proposições CORRETAS:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: C

Fundamento decisivo: O ponto decisivo era a proposição III, pois ela descreve apenas a busca no remoto, que corresponde a git fetch, e não a git pull.

Tema central: Comandos e conceitos do Git
Análise das alternativas
A
Errada
Incorreta porque inclui III como correta. III descreve git fetch, não git pull.
B
Errada
Incorreta porque, embora I esteja correta, a alternativa também inclui III, que está errada.
C
Certa
A alternativa C está correta porque reúne exatamente as proposições compatíveis com as definições cobradas. I está correta porque git merge combina históricos de ramos distintos e preserva a genealogia dos históricos integrados. II está correta porque o .gitignore serve para indicar arquivos e diretórios que o Git deve ignorar, como artefatos compilados, dependências e arquivos locais. IV também está correta porque HEAD é a referência ao commit atual, normalmente por meio do ramo ativo no diretório de trabalho.
D
Errada
Incorreta porque trata III como correta. Isso contraria a definição operacional de git pull, que envolve busca no remoto seguida de integração no ramo local.
E
Errada
Incorreta porque inclui III entre as corretas. Como III descreve git fetch e não git pull, a alternativa fica invalidada.
Pegadinha da questão
A pegadinha real foi confundir git pull com git fetch; a assertiva III troca a operação que apenas baixa pela operação que baixa e integra.
Dica para questões semelhantes
  • Quando a afirmação disser que o comando apenas baixa alterações do remoto, o comando compatível é git fetch, não git pull.
  • Em prova, diferencie função principal de detalhe excepcional: git merge combina históricos e preserva genealogia.
  • Leia HEAD como referência ao commit atual do trabalho, normalmente vinculada ao ramo ativo, e não como simples sinônimo do nome do branch.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

A alternativa correta é a C (I, II e IV).

I. Correta: O git merge é usado para reunir o histórico de diferentes ramificações (branches). Quando ocorre um merge (que não seja fast-forward), o Git cria um novo "commit de mesclagem" que aponta para os pais de ambos os ramos, mantendo a integridade da genealogia do projeto.

II. Correta: O arquivo .gitignore serve exatamente para instruir o Git sobre quais arquivos ele deve ignorar. Isso evita que "lixo" ou arquivos sensíveis (como senhas em arquivos .env, pastas node_modules ou binários .exe) sejam enviados para o repositório.

III. Incorreta: O comando git pull não é apenas um download. Na verdade, ele é a combinação de dois comandos: git fetch (que baixa os dados) + git merge (que mescla os dados no seu ramo local). Portanto, ele altera sim o seu ramo de trabalho.

IV. Correta: O HEAD no Git é um ponteiro que indica onde você está atualmente no histórico. Geralmente, ele aponta para o último commit do branch que você fez checkout.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo