Questões de Gerência de Configuração (Engenharia de Software)

Limpar Busca

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:

  • A II e III.
  • B I e III.
  • C I, II e IV.
  • D I, II, III e IV.
  • E I, II e III.

De acordo com os Pods Security Standards da documentação do Kubernetes, a política direcionada a desenvolvedores e operadores de aplicações não críticas é chamada de

  • A Privileged.
  • B Baseline.
  • C Restricted.
  • D Regular.
  • E Basic.

Assinale a alternativa que descreve corretamente informações sobre os comandos git merge e git rebase.

  • A git merge combina os históricos de forma linear, enquanto git rebase cria um novo commit de mesclagem.
  • B git rebase é usado em ramos remotos, enquanto git merge é usado apenas em ramos locais.
  • C Ambos os comandos fazem a mesma coisa, apenas com sintaxe diferente.
  • D git rebase é exclusivo do GitHub, enquanto git merge é do Git.
  • E git merge preserva o histórico original de commits, enquanto o git rebase reescreve o histórico de commits movendo os commits para o topo do histórico.

Historicamente, as equipes de desenvolvimento trabalhavam de forma isolada por grandes períodos, atrasando a junção de suas modificações na ramificação principal (master) até a conclusão completa de suas tarefas. Essa prática resultava em fusões de código complexas e demoradas, além de propiciar o acúmulo de erros. Consequentemente, a agilidade na distribuição de novas atualizações aos clientes era severamente comprometida.
Isso posto, a solução para o problema descrito é a (o):

  • A Entrega Contínua.
  • B Monitoramento.
  • C Implantação Contínua.
  • D Build.
  • E Integração Contínua.

Considere um sistema que está empregando um repositório Git. Nesse contexto, considere o seguinte cenário:
•Um desenvolvedor está na branch feature-x e realiza alterações em dois arquivos: index.js e config.json.
•Ele executa git stash push -m "ajustes temporários" para guardar as mudanças.
•Em seguida, ele executa git checkout main e, por engano, roda git stash drop sem especificar o stash.
•Ao perceber o erro, tenta recuperar as alterações com git stash list, mas a lista está vazia.

Diante do cenário, avalie as sentenças a seguir:
O stash pode ser recuperado usando git fsck ou git reflog para localizar o hash do stash e aplicar git stash apply <hash> ou git show <hash> para inspecionar o conteúdo. PORQUE O comando git stash drop sem argumentos remove apenas o stash mais recente e mantém os arquivos modificados no diretório de trabalho.

Acerca dessas sentenças, assinale a alternativa CORRETA.

  • A As duas sentenças são verdadeiras, e a segunda é uma justificativa correta da primeira.
  • B As duas sentenças são verdadeiras, mas a segunda não é uma justificativa correta da primeira.
  • C A primeira sentença é verdadeira, e a segunda é falsa.
  • D A primeira sentença é falsa, e a segunda é verdadeira.