Pular para o conteúdo principal

Questão de Engenharia de Software — Geral — FCC 2025

Engenharia de SoftwareGeral
Código
fc150569
Banca
FCC
Órgão
TRT 2
Ano
2025
Cargo
TJ TRT2

Durante a automatização de rotinas do sistema de protocolo digital em um Tribunal Regional do Trabalho, uma equipe de TI utiliza Git para versionamento local dos scripts e GitHub como repositório remoto. Para garantir rastreabilidade de alterações, colaboração entre setores e gerenciamento eficiente de versões, foram adotadas boas práticas com branches, commits e pull requests.

 

Nesse cenário,

  1. Ao comando git pull remove as alterações locais e sincroniza os arquivos com o estado mais recente do repositório remoto, sendo equivalente a um git fetch seguido de git reset --hard origin/main.
  2. Bpara garantir que uma modificação feita em um script de automação seja invisível para outros colaboradores até que esteja estável, recomenda-se fazer o commit com a flag --hidden, ocultando o conteúdo até que se utilize git show.
  3. Co comando git revert HEAD~1 apaga definitivamente o último commit do repositório, sem possibilidade de recuperação, sendo recomendado para manter o histórico limpo em ambientes públicos como GitHub.
  4. Do uso de git stash permite guardar temporariamente arquivos commitados em uma branch para posterior reaplicação em outra, sendo ideal para transportar código consolidado entre fluxos de trabalho distintos.
  5. Eao criar uma nova funcionalidade no sistema de protocolo, o ideal é abrir uma branch a partir da main, realizar os commits nessa branch e, ao concluir, abrir um pull request no GitHub para que a alteração seja revisada e integrada à branch principal, garantindo controle e rastreabilidade no ambiente colaborativo.
Revelar gabarito e comentário

GabaritoE — ao criar uma nova funcionalidade no sistema de protocolo, o ideal é abrir uma branch a partir da main, realizar os commits nessa branch e, ao concluir, abrir um pull request no GitHub para que a alteração seja revisada e integrada à branch principal, garantindo controle e rastreabilidade no ambiente colaborativo.

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: boas práticas de branches, commits e pull requests

Gabarito: letra E. A alternativa E descreve corretamente o fluxo de trabalho colaborativo com Git/GitHub: criar uma branch a partir da main, desenvolver nela e, ao concluir, abrir um pull request para revisão e integração — prática que garante controle, rastreabilidade e colaboração. As demais alternativas distorcem comandos e conceitos fundamentais do Git, como git pull, git revert, git stash e a inexistente flag --hidden.

O Git é um sistema de controle de versão distribuído, o que significa que cada desenvolvedor possui uma cópia completa do repositório em sua máquina local. Isso permite trabalhar offline, criar branches (ramificações) de forma leve e rápida, e realizar commits localmente sem depender de um servidor central. O GitHub, por sua vez, atua como um repositório remoto que facilita a colaboração entre equipes, permitindo o compartilhamento de código, a revisão de alterações e a integração contínua.

O fluxo de trabalho com branches é essencial para o desenvolvimento colaborativo. Ao criar uma branch a partir da main, o desenvolvedor isola suas alterações, evitando que código instável ou incompleto afete a versão principal do projeto. Após concluir o desenvolvimento, um pull request (PR) é aberto no GitHub, solicitando que as alterações da branch sejam revisadas e integradas à branch principal. Esse processo permite que outros membros da equipe analisem o código, façam comentários, sugiram melhorias e, após aprovação, realizem o merge. Essa prática garante rastreabilidade, pois cada PR documenta o que foi alterado, por quem e por quê, além de promover a colaboração entre setores.

Os comandos do Git possuem funções específicas e muitas vezes são confundidos. O git pull é usado para atualizar o repositório local com as alterações do remoto, mas ele não remove alterações locais — ele faz um git fetch seguido de um git merge (ou git rebase, dependendo da configuração). O git revert é usado para desfazer um commit, mas em vez de apagá-lo do histórico, ele cria um novo commit que reverte as alterações, preservando o histórico original. O git stash é usado para guardar temporariamente alterações não commitadas, permitindo que o desenvolvedor mude de branch ou faça outras tarefas sem perder o trabalho em andamento. Não existe uma flag --hidden para commits no Git; a forma de ocultar alterações até que estejam estáveis é usar branches e commits locais, que não são compartilhados até que sejam enviados ao repositório remoto.

A pegadinha desta questão está em atribuir aos comandos Git comportamentos que eles não possuem, como a remoção de alterações locais pelo git pull, a exclusão definitiva de commits pelo git revert e a existência de uma flag --hidden. O candidato que conhece bem os comandos e o fluxo de trabalho com branches identifica facilmente a alternativa E como a única correta.

Git/GitHub
  • 1Fluxo colaborativo (correto)
    • Branch a partir da main
    • Commits na branch
    • Pull request para revisão
    • Merge na main
  • 2Comandos (pegadinhas)
    • git pull
      • fetch + merge
      • não remove alterações locais
    • git revert
      • cria novo commit
      • não apaga o histórico
    • git stash
      • guarda alterações não commitadas
      • não transporta código consolidado
    • git commit --hidden
      • flag inexistente
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

O git pull não remove alterações locais. Ele é equivalente a um git fetch seguido de um git merge (ou git rebase), que integra as alterações do remoto ao branch local. Se houver conflitos, o Git os sinaliza e o desenvolvedor deve resolvê-los manualmente. O comando git reset --hard origin/main é que descartaria alterações locais, mas não é o que o git pull faz.

Alternativa B — ❌ Incorreta

Não existe a flag --hidden para o comando git commit. A forma correta de manter alterações invisíveis para outros colaboradores até que estejam estáveis é trabalhar em uma branch local e não enviá-la ao repositório remoto. Os commits são visíveis apenas localmente até que sejam enviados com git push.

Alternativa C — ❌ Incorreta

O git revert HEAD~1 não apaga o último commit. Ele cria um novo commit que desfaz as alterações do commit anterior, preservando o histórico. Isso é recomendado em ambientes públicos como GitHub, pois evita reescrever o histórico, o que poderia causar conflitos para outros colaboradores que já baixaram o repositório.

Alternativa D — ❌ Incorreta

O git stash é usado para guardar temporariamente alterações não commitadas (modificações no diretório de trabalho e na área de preparo), permitindo que o desenvolvedor mude de branch ou faça outras tarefas. Ele não é ideal para transportar código consolidado entre branches; para isso, o correto é usar git commit e git merge ou git rebase.

Alternativa E — ✅ Correta ⟵ GABARITO

Esta alternativa descreve corretamente o fluxo de trabalho com branches e pull requests. Ao criar uma branch a partir da main, o desenvolvedor isola suas alterações. Após concluir o desenvolvimento, um pull request é aberto no GitHub para que as alterações sejam revisadas e integradas à branch principal. Esse processo garante controle, rastreabilidade e colaboração, sendo uma boa prática amplamente adotada em ambientes colaborativos.

Gabarito: letra E

Link permanente: /questoes/fc150569