Questão de Engenharia de Software — Geral — INSTITUTO AOCP 2026
Engenharia de Software›Geral
Código
qa434173
Banca
INSTITUTO AOCP
Órgão
IF CE
Ano
2026
Cargo
Ana ( )
Em um projeto de desenvolvimento de software no IFCE, a equipe utiliza Git para versionamento de código e GitLab como plataforma de hospedagem dos repositórios. Sobre essas ferramentas, assinale a alternativa correta.
AO Git funciona como um sistema de controle de versão centralizado, em que o servidor principal detém o histórico integral do projeto, sem a existência de cópias locais completas.
BO GitLab é uma linguagem de programação utilizada para automatizar tarefas de integração contínua.
CO Git permite controle de versões distribuído, possibilitando que cada desenvolvedor possua uma cópia completa do repositório com histórico de commits.
DO GitLab substitui totalmente o uso do Git, não sendo necessário instalar o Git nas máquinas dos desenvolvedores.
EO comando git commit envia automaticamente as alterações locais para o repositório remoto hospedado no GitLab.
Revelar gabarito e comentário▾
GabaritoC — O Git permite controle de versões distribuído, possibilitando que cada desenvolvedor possua uma cópia completa do repositório com histórico de commits.
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 e GitLab: controle de versão distribuído e plataforma de hospedagem
Gabarito: letra C. O Git é um sistema de controle de versão distribuído, no qual cada desenvolvedor possui uma cópia completa do repositório, incluindo todo o histórico de commits — exatamente o que a alternativa C afirma. As demais alternativas erram ao descrever o Git como centralizado, confundir o GitLab com linguagem de programação, afirmar que o GitLab substitui o Git ou atribuir ao comando git commit a função de enviar alterações ao repositório remoto.
O controle de versão é uma prática essencial na engenharia de software: ele monitora e registra alterações em arquivos ao longo do tempo, permitindo rastrear o histórico, reverter mudanças e colaborar em equipe. Existem três arquiteturas principais de sistemas de controle de versão: local (armazena alterações apenas em um computador, sem interação com outros usuários), centralizado (um servidor central armazena o repositório e os clientes interagem com ele para obter e enviar alterações) e distribuído (cada cliente mantém uma cópia completa do repositório, podendo inclusive comunicar-se diretamente entre si). O Git pertence à terceira categoria — é um sistema distribuído.
A principal consequência do modelo distribuído é a independência de rede: como cada desenvolvedor tem o repositório inteiro localmente, a maioria das operações (commits, logs, branches, merges) é executada sem necessidade de conexão com um servidor. O Git trata os dados como um conjunto de snapshots (imagens) do sistema de arquivos, e cada commit recebe um identificador único (checksum SHA-1). Além disso, o Git não remove dados: ele apenas adiciona novas versões, o que garante a integridade do histórico.
O GitLab, por sua vez, é uma plataforma de hospedagem de repositórios Git e uma ferramenta completa de DevOps, oferecendo repositórios Git, integração contínua (CI/CD), gerenciamento de pacotes e controle de acesso. Ele não substitui o Git — pelo contrário, depende dele: o Git é o sistema de controle de versão instalado localmente, e o GitLab é o servidor remoto que hospeda os repositórios e oferece recursos colaborativos. A relação é de complementaridade: o Git é a ferramenta de versionamento; o GitLab é a plataforma que centraliza e gerencia esses repositórios na web.
O fluxo de trabalho típico envolve três áreas no Git: o diretório de trabalho (onde os arquivos são editados), a área de preparo (staging area, onde as alterações são registradas antes de serem salvas) e o repositório (onde o histórico é armazenado permanentemente). O comando git commit consolida as alterações da área de preparo no repositório local — ele não envia nada para o remoto. Para enviar as alterações ao GitLab (ou qualquer repositório remoto), é necessário usar o comando git push. Essa distinção entre commit (local) e push (remoto) é um dos pontos mais cobrados e uma das pegadinhas mais comuns em provas.
A banca explora exatamente essa confusão: o candidato que sabe que o Git é distribuído elimina a alternativa A; quem sabe que o GitLab é uma plataforma e não uma linguagem elimina a B; quem entende que o GitLab depende do Git elimina a D; e quem conhece o fluxo commit/push elimina a E. A alternativa C é a única que descreve corretamente a natureza distribuída do Git.
Git: Controle de versão distribuído (Cópia completa local, Histórico de commits, Independência de rede); Fluxo de trabalho (git add (prepara), git commit (salva local), git push (envia remoto)); Modelos de VCS (Local, Centralizado (SVN), Distribuído (Git)); GitLab (Plataforma de hospedagem, DevOps (CI/CD), Não substitui o Git)
Alternativa A — ❌ Incorreta
Afirma que o Git é um sistema de controle de versão centralizado, com servidor principal detendo o histórico integral e sem cópias locais completas. Isso descreve o modelo centralizado (como o SVN), não o Git. No Git, cada desenvolvedor possui uma cópia completa do repositório, com todo o histórico — é a essência do modelo distribuído. A banca troca o modelo distribuído pelo centralizado, uma inversão clássica.
Alternativa B — ❌ Incorreta
Afirma que o GitLab é uma linguagem de programação usada para automatizar tarefas de integração contínua. O GitLab é uma plataforma de hospedagem de repositórios Git e uma ferramenta de DevOps, que oferece CI/CD, mas não é uma linguagem de programação. A confusão aqui é entre ferramenta e linguagem — o GitLab é software, não uma linguagem.
Alternativa C — ✅ Correta ⟵ GABARITO
Descreve corretamente o Git como um sistema de controle de versão distribuído, no qual cada desenvolvedor possui uma cópia completa do repositório com histórico de commits. Essa é a definição exata do modelo distribuído, e é a característica fundamental do Git. A alternativa espelha o conceito com precisão.
Alternativa D — ❌ Incorreta
Afirma que o GitLab substitui totalmente o uso do Git, dispensando a instalação do Git nas máquinas dos desenvolvedores. O GitLab é uma plataforma que hospeda repositórios Git, mas o Git continua sendo necessário localmente para realizar operações de versionamento (commit, branch, merge, etc.). O GitLab complementa o Git, não o substitui.
Alternativa E — ❌ Incorreta
Afirma que o comando git commit envia automaticamente as alterações locais para o repositório remoto. O git commit registra as alterações no repositório local; para enviar ao remoto (GitLab), é necessário o comando git push. A banca troca o commit (operação local) pelo push (operação remota), uma pegadinha recorrente.
NÃO CAIA NESSA!
A banca explora duas confusões clássicas: (1) trocar o modelo distribuído pelo centralizado (alternativa A) e (2) atribuir ao git commit a função de enviar ao remoto, quando isso é papel do git push (alternativa E). Lembre-se: commit é local, push é remoto — essa distinção cai com frequência.
PEGA ESSA DICA!
Para fixar, memorize o fluxo: git add (prepara) → git commit (salva localmente) → git push (envia ao remoto). E lembre que Git = ferramenta de versionamento distribuído; GitLab/GitHub = plataformas que hospedam repositórios Git.