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
fg085527
Banca
FGV
Órgão
INPE
Ano
2024
Nível
Superior
Cargo
Tecnologista Júnior I - Desenvolvimento de Software para Operação de Satélites
Sistemas de versionamento de software são ferramentas amplamente utilizadas no desenvolvimento de aplicações.Nesse contexto, mais especificadamente sobre o sistema Git, assinale a afirmativa correta.
  1. ACada cópia de trabalho do código é um repositório completo, com histórico e capacidades de versionamento.
  2. BO Git é único sistema que permite a utilização de ramificações (branches) e etiquetas (tags).
  3. CUm projeto possui três seções principais: diretório Git, diretório de trabalho (working directory) e área de lançamento (lauching area).
  4. DO Git organiza os commits em uma estrutura de dados linear, que simplifica o rastreamento de alterações.
  5. EO Git grava todas as operações de commit diretamente no servidor central, exigindo conexão constante para que as alterações sejam registradas.
Revelar gabarito e comentário

GabaritoA — Cada cópia de trabalho do código é um repositório completo, com histórico e capacidades de versionamento.

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: Sistemas de Versionamento Distribuído

Gabarito: letra A. A alternativa A descreve corretamente a natureza distribuída do Git: cada cópia de trabalho (clone) é um repositório completo com histórico completo e capacidades de versionamento, o que é a essência dos VCS distribuídos.

1Repositório completo em cada clone
Histórico integral
Branches e tags
Operações locais
2Três áreas principais
Working directory
Staging area (index)
Git directory (repository)
3Estrutura de commits
Grafo DAG (não linear)
Múltiplos pais (merge)
4Operação descentralizada
Commit local sem servidor
Push/pull para sincronizar
Git (DVCS)
LEVELsoulevel.com.br
Git (DVCS): Repositório completo em cada clone (Histórico integral, Branches e tags, Operações locais); Três áreas principais (Working directory, Staging area (index), Git directory (repository)); Estrutura de commits (Grafo DAG (não linear), Múltiplos pais (merge)); Operação descentralizada (Commit local sem servidor, Push/pull para sincronizar)

Alternativa A — ✅ Correta ⟵ GABARITO

Afirma que cada cópia de trabalho do código é um repositório completo, com histórico e capacidades de versionamento. Isso é exatamente o que caracteriza um sistema de controle de versão distribuído (DVCS) como o Git: ao clonar um repositório, você obtém uma réplica integral do repositório, incluindo todo o histórico de commits, branches e tags, podendo realizar operações de versionamento localmente. O Git não depende de um servidor central para registrar as alterações; cada desenvolvedor tem um repositório completo.

Alternativa B — ❌ Incorreta

Afirma que o Git é o único sistema que permite ramificações (branches) e etiquetas (tags). Isso é falso, pois outros sistemas de controle de versão, como Mercurial, SVN (embora SVN seja centralizado, também suporta branches e tags de certa forma), Bazaar, entre outros, também oferecem esses recursos. O Git não é exclusivo nesse aspecto.

Alternativa C — ❌ Incorreta

Menciona três seções principais: diretório Git, diretório de trabalho (working directory) e área de lançamento (lauching area). O termo correto para a área intermediária entre o diretório de trabalho e o repositório é "área de preparação" (staging area) ou "index". "Lauching area" é um termo incorreto e não faz parte da terminologia do Git. As três áreas reais são: working directory, staging area (index) e Git directory (repository).

Alternativa D — ❌ Incorreta

Afirma que o Git organiza os commits em uma estrutura de dados linear. Na realidade, o Git utiliza um grafo direcionado acíclico (DAG), onde cada commit aponta para um ou mais commits pais, permitindo merges e branches. A estrutura não é linear, pois múltiplas linhas de desenvolvimento podem coexistir e convergir.

Alternativa E — ❌ Incorreta

Diz que o Git grava todas as operações de commit diretamente no servidor central, exigindo conexão constante. Isso descreve um sistema centralizado (como SVN), não o Git. No Git, os commits são feitos localmente e posteriormente podem ser enviados (push) para um repositório remoto. Não é necessária conexão constante para registrar alterações.

Gabarito: letra A.

Link permanente: /questoes/fg085527