Questões de Concurso sobre Versionamento de Código-Fonte (Controle de Versão)

 
 
Disciplina
Assunto 1
Banca
Instituição
Cargo
Ano
Carreira
Área de formação
Escolaridade
Dificuldade
 
Comentários:
Professores
Alunos
Meus Comentários
Vídeo
 
Minhas questões:
Resolvidas
Não resolvidas
Certas
Erradas
 
Tipo de questão:
Certo e errado
Múltipla escolha
Incluir questões:
Anuladas
Desatualizadas
 
Questões:
Todas as questões
 
Filtro simplificado
 
Questões
Todas as questões
 
260 questões encontradas
Questões por página
20
Mais recentes
 

Uma analista criou a branch feature/login a partir de develop. Enquanto ela trabalha, outros commits entram em develop. Quando terminar, a analista precisa integrar sua feature no fluxo GitFlow. O procedimento que a analista tem que seguir é:


A

Finalizar a feature fazendo merge primeiro em main e, em seguida, trazer esse merge de volta para develop.


B

Fazer merge periódico de develop em feature/login; quando a feature estiver concluída, mesclar feature/login de volta em develop.


C

Criar feature/login a partir de main e, ao concluir, mesclar direto em main, sem passar por develop.


D

Usar git rebase main sempre que houver novos commits e depois fazer merge de feature/login diretamente em main.


E

Não atualizar a branch durante o desenvolvimento e só no final usar merge --squash para juntar tudo em main.

A construção de um repositório estruturado de versionamento e governança de modelos é uma prática recomendada em MLOps para garantir rastreabilidade, controle de implantação e execução segura de rollbacks.


C

Certo


E

Errado

Na construção de um aplicativo, um time de desenvolvimento com múltiplas frentes precisa reduzir risco de sobrescrita e permitir desenvolvimento paralelo de correções e novos recursos. Diante do exposto, uma boa prática em versionamento para atender o cenário apresentado é:


A

Realização de commit direto na branch principal sem revisão.


B

O uso de branches por finalidade e estratégia de merge/review.


C

A cópia de diretórios com data nos nomes para legibilidade.


D

O versionamento de código apenas no fim do projeto visando celeridade.

O versionamento de código é uma prática essencial no desenvolvimento de sistemas modernos, especialmente em projetos colaborativos. Ferramentas como o Git permitem o controle histórico das alterações, o trabalho simultâneo de múltiplos desenvolvedores e a rastreabilidade das mudanças realizadas ao longo do ciclo de vida do software, reduzindo conflitos e facilitando manutenção e auditoria.


Considere uma equipe de desenvolvimento back-end que trabalha de forma colaborativa em um repositório Git, realizando alterações frequentes no código de uma API corporativa.


Nesse contexto, assinale a alternativa que descreve corretamente uma prática adequada de uso do Git para garantir controle de versões e colaboração eficiente entre os membros da equipe.


A

Utilizar branches para desenvolver funcionalidades ou correções de forma isolada, integrando-as posteriormente ao branch principal por meio de merge controlado.


B

Trabalhar exclusivamente no branch principal, evitando branches adicionais para reduzir a complexidade do repositório.


C

Realizar commits diretamente no repositório remoto, sem histórico local, para garantir maior sincronização entre os desenvolvedores.


D

Eliminar o histórico de commits periodicamente, mantendo apenas a versão final do código para simplificar o controle do projeto.

Durante o processo de versionamento de um software utilizando o Git, um desenvolvedor executou um commit em seu repositório local. Imediatamente após a ação, ele percebeu que havia executado o comando muito cedo: esqueceu de adicionar um arquivo importante à área de preparação (stage) e escreveu a mensagem descritiva de forma equivocada. Como o commit ainda não foi enviado para o repositório remoto, o desenvolvedor deseja refazê-lo, incorporando o arquivo esquecido e corrigindo a mensagem, de modo a sobrescrever o registro anterior sem criar um commit adicional no histórico. Após adicionar o arquivo pendente ao stage, qual é o comando a se executar para atingir esse objetivo diretamente, sem a necessidade de comandos adicionais?


A

git commit --amend


B

git revert --commit


C

git reset --soft HEAD~1


D

git rebase --interactive


E

git restore --staged

Um técnico de TI utiliza git para versionar os scripts de automação de rede da organização. Durante uma reunião de alinhamento, a equipe discutiu os conceitos fundamentais do git para padronizar o uso da ferramenta. Analise as definições abaixo e assinale a alternativa que apresenta uma definição INCORRETA:


A

Commit: operação que registra um conjunto de alterações no histórico do repositório, criando um ponto no histórico identificado por um código único.


B

Branch: ramificação independente do repositório que permite desenvolver funcionalidades ou correções de forma isolada, sem afetar o código principal.


C

Pull: operação que baixa as alterações do repositório remoto e as integra automaticamente à branch local em uso.


D

Merge: operação que cria uma cópia completa e independente de um repositório remoto na máquina local, incluindo todo o histórico de alterações.


E

Push: operação que envia os commits realizados localmente para o repositório remoto, atualizando o histórico compartilhado com a equipe.

Uma equipe de Tl de uma Secretaria da Fazenda mantém o sistema de emissão de guias de arrecadação em um repositório Gil central, usando a branch main diretamente em produção. Um commit já publicado alterou o cálculo de ISS e gerou valores incorretos. A auditoria exige que o histórico da main permaneça íntegro, sem reescrita de histórico já publicado, e que a correção seja aplicada a partir do commit problemático. Considerando as recomendações usuais para desfazer mudanças em uma branch pública já compartilhada, o procedimento que está alinhado a essas exigências e, na branch main, executar


A

qit reset --hard HEAD-1 e depois git push --force origin main, removendo o commit incorreto do histórico remoto.


B

git reset --soft HEAD-1, ajustar o código de ISS, criar novo commit e finalizar com git push --force origin main.


C

git revert <hash_do commit_incorreto> e em seguida git push origin main, registrando novo commit que desfaz as alterações de ISS.


D

git rebase -i HEAD-2, excluir a linha do commit incorreto no rebase interativo e depois usar git push --force-with-lease origin main.


E

o cálculo de ISS em novo commit corretivo sobre o histórico atual e executar git push origin main, sem usar

Code Smells são indicadores de código de baixa qualidade, isto é, código difícil de manter, entender, modificar ou testar (Valente, 2020). Avalie o trecho de código a seguir (em linguagem JAVA).


Imagem associada para resolução da questão

Fonte: dados do elaborador


Assinale a alternativa que representa o code smell melhor caracterizado no trecho de código.


A

Métodos com muitos parâmetros.


B

Feature Envy.


C

Long Method.


D

Obsessão por tipos primitivos.

Um desenvolvedor de aplicações de TI está utilizando um sistema de controle de versão distribuído, o GlIT, no desenvolvimento de um aplicativo. No momento, ele precisa enviar as alterações recém-realizadas nesse aplicativo para um repositório remoto. O comando do ambiente GlT a ser usado, para tal, é o :git


A

pull


B

push


C

merge


D

status


E

branch

Observe a sequência de comandos do Git a seguir.


(Observações: as linhas estão numeradas apenas para facilitar a referência aos comandos; o arquivo newfile.c foi criado na linha 3; e o arquivo oldfile.c é um arquivo rastreado que já existia e foi apenas alterado na linha 4.)


1- git branch new-feature

2- git checkout new-feature

3- vim newfile.c

4- vim oldfile.c

5- git commit -a -m ‘Make a change’


No controle de versões com Git, supondo-se um repositório já existente, qual o efeito da sequência de comandos apresentada?


A

O branch new-feature é inicializado em um novo repositório, para o qual o conteúdo do repositório original é copiado e ao qual é adicionada a nova versão do arquivo oldfile.c, bem como o arquivo newfile.c.


B

O branch new-feature é selecionado e preparado para commit, o qual ocorre subsequentemente, criando uma nova versão, que contém o arquivo oldfile.c modificado, assim como o novo arquivo newfile.c.


C

O branch new-feature é criado no mesmo repositório e definido com espaço de trabalho, o qual contém a nova versão do arquivo oldfile.c, mas não o arquivo newfile.c.


D

O branch new-feature é criado no mesmo repositório e nele é criada uma nova versão, a qual contém o arquivo modificado oldfile.c, assim como o novo arquivo newfile.c.

Em uma organização, a adoção de controle de versões e de trilhas de auditoria em seus sistemas de gestão documental garante a disponibilidade da informação, pois assegura a integridade e a confiabilidade dos registros ao longo do tempo.


C

Certo


E

Errado

No âmbito de um Ministério Público Estadual, a equipe de Tecnologia da Informação desenvolveu um sistema eletrônico para gestão de denúncias recebidas pela Ouvidoria. Após seis meses de operação, a Procuradoria-Geral solicitou a elaboração de parecer técnico avaliando a conformidade do sistema com requisitos institucionais previamente definidos. Durante a análise, verificou-se que o sistema não possui trilha de auditoria detalhada sobre alterações realizadas nos registros nem mecanismo formal de controle de versionamento das modificações efetuadas pelos usuários internos. A luz das atribuições institucionais e do papel do setor técnico no assessoramento ao Ministério Público Estadual, a conclusão tecnicamente fundamentada que deve integrar o parecer é que


A

o parecer deve concentrar-se na descrição funcional do sistema, sendo o posicionamento conclusivo sobre conformidade institucional designado a outra área.


B

eventuais lacunas técnicas devem ser tratadas pela equipe de desenvolvimento e priorizadas frente ao registro formal parecer encaminhado à administração superior.


C

a inexistência de controle de versionamento compromete a rastreabilidade e a integridade das informações, exigindo recomendações técnicas para adequação do sistema.


D

o sistema atende aos requisitos institucionais do Ministério Público Estadual, pois implementa a autenticação e o registro de logs do sistema.


E

a ausência de trilha de auditoria pode ser compensada por backups periódicos priorizando o ajuste estrutural no sistema em segundo plano.

Durante o desenvolvimento de um sistema corporativo, a equipe de tecnologia definiu padrões de codificação, utilização de repositórios compartilhados e controle de alterações realizadas no código-fonte ao longo do projeto. Nesse contexto, podemos afirmar que:


A

compiladores executam programas diretamente sem geração intermediária de código de máquina.


B

sistemas de versionamento registram alterações no código-fonte e controlam versões do software.


C

paradigmas funcionais organizam programas por meio de estruturas sequenciais lineares.


D

estruturas de dados destinam-se ao armazenamento permanente de arquivos executáveis do sistema operacional.


E

interpretadores realizam processamento físico das instruções diretamente nos dispositivos de hardware.

Considerando as ferramentas Git e GitLab, qual das alternativas abaixo descreve corretamente suas funcionalidades?


A

O GitLab é utilizado apenas para integração contínua, e o Git é utilizado exclusivamente para controle de versão centralizado.


B

O Git e o GitLab funcionam de maneira semelhante, ambos sendo apenas plataformas de integração contínua, sem relação com controle de versão.


C

O Git é uma plataforma de hospedagem de código fonte, enquanto o GitLab é uma ferramenta de controle de versão distribuído que armazena e organiza o código.


D

O Git é um sistema de controle de versão distribuído utilizado para versionamento de código, enquanto o GitLab é uma plataforma que oferece repositórios, integração contínua e gerenciamento de código, utilizando o Git.

Considere um profissional que está utilizando um repositório Git. Em determinado momento, ele está diante do seguinte cenário:


•A branch main contém o commit A.

•A branch feature é criada a partir de main e recebe dois commits: B e C.

•Enquanto isso, a branch main recebe um novo commit D.


O desenvolvedor executa o seguinte comando a partir da branch feature:

Imagem associada para resolução da questão


Após o rebase, ocorre um conflito no commit C. O desenvolvedor resolve o conflito e executa:

Imagem associada para resolução da questão


Diante do exposto, assinale a alternativa CORRETA.


A

Após o rebase, os commits B e C são reaplicados sobre o commit D, criando novos hashes para esses commits.


B

O rebase reescreve o histórico da branch main, substituindo o commit D por uma versão compatível com os commits B e C.


C

O histórico da branch feature gera um fork e as referências anteriores a B e C são atualizadas.


D

Os commits B e C são mesclados automaticamente com D, preservando os hashes originais e evitando conflitos.

O versionamento de código é uma prática essencial no desenvolvimento de software, permitindo que múltiplos desenvolvedores colaborem de forma organizada, mantenham um histórico de alterações e revertam mudanças quando necessário. O Git, um dos sistemas de controle de versão mais populares, fornece uma série de comandos que auxiliam na gestão do código-fonte. Considere o seguinte conjunto de comandos executados em um repositório Git:


git init

git add main.py

git commit -m "Adiciona o arquivo principal"

git branch nova-feature

git checkout nova-feature

echo "print('Nova funcionalidade')" >> main.py

git add main.py

git commit -m "Adiciona nova funcionalidade"

git checkout main

git merge nova-feature


Com base nos comandos apresentados, assinale a alternativa correta.


A

O comando git init clona um repositório remoto do GitHub para o computador local, permitindo edição e commits offline.


B

O comando git checkout nova-feature exclui a branch main e cria uma nova branch chamada nova-feature, que passa a ser a principal do repositório.


C

O comando git commit -m "Adiciona nova funcionalidade" altera permanentemente o arquivo main.py na branch main, independentemente de qual branch esteja ativa no momento.


D

O comando git add main.py faz o commit automático do arquivo main.py, sem a necessidade de um git commit.


E

Após a execução dos comandos, o código escrito na branch nova-feature foi incorporado à branch main por meio do comando git merge.

Ainda a respeito da situação hipotética apresentada, assinale a opção que apresenta a prática correta de versionamento que o desenvolvedor deveria ter adotado para evitar conflitos no código.


A

fazer as alterações diretamente na branch principal (main ou master) para acelerar o desenvolvimento


B

apagar o repositório remoto e criar um novo com as modificações já aplicadas


C

baixar o repositório em formato ZIP, editar o código localmente e enviar o arquivo por e‑mail ao líder técnico


D

criar uma nova branch para suas alterações, realizar commits frequentes e solicitar um pull request para revisão antes da integração


E

substituir os arquivos conflitantes manualmente sem utilizar comandos de versionamento, a fim de resolver os conflitos de código o mais rapidamente possível

No controle de versões com Git, às vezes é necessário corrigir ou ajustar o último commit feito, como quando ocorre um erro no projeto ou faltam mudanças a serem incluídas. Para isso, existe uma diretiva específica que permite alterar o commit anterior sem criar um novo. Qual comando abaixo é utilizado para modificar o último commit efetuado?


A

git commit --stat


B

git diff


C

git commit --amend


D

git commit –push

O grupo revisor de código-fonte das soluções da PDPJ-Br pode aceitar merge requests no código-fonte sem a necessidade de aprovação de testes, desde que a funcionalidade desenvolvida atenda às necessidades operacionais.


C

Certo


E

Errado

Um code smell é qualquer característica em um código-fonte que indica uma possível fragilidade ou problema mais profundo que pode vir prejudicar a manutenção e a qualidade do software. São exemplos de code smells, EXCETO:


A

Blocos de código duplicados.


B

Baixo acoplamento.


C

Comentários longos.


D

Métodos e classes muito extensos.


E

Violação à orientação a objetos.

 
Ir para a página:
OK
 
Gerar simulado