Questão de Engenharia de Software — Git — FCC 2024
Engenharia de Software›Git
Código
fc147280
Banca
FCC
Órgão
BAHIAGÁS
Ano
2024
Cargo
APO ( )
Em um projeto de desenvolvimento de software grande e complexo, uma Analista optou pelo uso do modelo de fluxo de trabalho para Git conhecido como Gitflow, que define tipos específicos de branches com propósitos diferentes. Em certo momento, ela fez commit na branch onde foram realizados testes e ajustes finais antes do lançamento, na branch
ADevelop.
BMaster.
CUpdate.
DRelease.
EFeature.
Revelar gabarito e comentário▾
GabaritoD — Release.
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”.
Gitflow: Branches e Fluxo de Trabalho
Gabarito: letra D. No modelo Gitflow, a branch Release é criada a partir da Develop para preparar o lançamento, sendo o local onde são realizados os testes finais, ajustes de bugs e correções de documentação antes de ser mesclada na Master/Main e na Develop. A alternativa correta é a letra D.
O Gitflow é um modelo de fluxo de trabalho para Git que organiza o desenvolvimento em branches com propósitos bem definidos, criado por Vincent Driessen. Ele é especialmente útil em projetos grandes e complexos, pois estabelece uma estrutura clara para o desenvolvimento de novas funcionalidades, preparação de releases e correções de emergência. As branches principais são a Master/Main (código estável, pronto para produção) e a Develop (integração do desenvolvimento). A partir delas, criam-se branches auxiliares: Feature (novas funcionalidades), Release (preparação do lançamento) e Hotfix (correções urgentes em produção).
A branch Release é criada a partir da Develop quando o conjunto de funcionalidades para a próxima versão está completo. Nela, são feitos apenas ajustes finais: correção de bugs, atualização de documentação e testes de aceitação. Nenhuma funcionalidade nova é adicionada nessa branch. Quando o release está pronto, ela é mesclada tanto na Master (com uma tag de versão) quanto na Develop, para que as correções feitas durante a preparação sejam incorporadas ao desenvolvimento contínuo.
A pegadinha desta questão está em confundir a branch Release com a Develop. A Develop é onde o desenvolvimento acontece de forma contínua, integrando as features concluídas. Já a Release é um estágio posterior, específico para a preparação do lançamento. O enunciado descreve exatamente o propósito da Release: "testes e ajustes finais antes do lançamento".
NÃO CAIA NESSA!
A banca explora a confusão entre as branches Develop e Release. A Develop é o ambiente de integração contínua do desenvolvimento, onde as features são mescladas. A Release é criada a partir da Develop quando o lançamento está próximo, servindo apenas para estabilização (testes finais, correção de bugs e documentação). O termo "antes do lançamento" é o gatilho: aponta diretamente para a Release, não para a Develop.
Branch
Função principal
Criada a partir de
Mesclada em
Master/Main
Código estável, pronto para produção
—
—
Develop
Integração contínua do desenvolvimento
Master
Master (via Release)
Feature
Desenvolvimento de novas funcionalidades
Develop
Develop
Release
Testes e ajustes finais antes do lançamento
Develop
Master e Develop
Hotfix
Correções urgentes em produção
Master
Master e Develop
1Feature (nova funcionalidade)
2Merge na Develop
3Release (testes e ajustes)
4Merge na Master e Develop
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
A branch Develop é o ambiente de integração do desenvolvimento, onde as branches Feature são mescladas após a conclusão. Ela não é o local de testes e ajustes finais antes do lançamento; esse papel é da Release. A Develop recebe o código em desenvolvimento contínuo, não a versão em preparação para produção.
Alternativa B — ❌ Incorreta
A branch Master (ou Main) contém o código estável e pronto para produção. Ela recebe o merge da Release (com a tag de versão) e da Hotfix, mas não é onde se realizam testes e ajustes finais. É o ponto de partida para o código em produção, não o ambiente de preparação.
Alternativa C — ❌ Incorreta
Update não é uma branch definida no modelo Gitflow. As branches padrão são Master, Develop, Feature, Release e Hotfix. A alternativa apresenta um nome genérico que não corresponde a nenhum tipo específico do fluxo de trabalho Gitflow.
Alternativa D — ✅ Correta ⟵ GABARITO
A branch Release é criada a partir da Develop quando o conjunto de funcionalidades para a próxima versão está completo. Nela, são realizados apenas ajustes finais: correção de bugs, atualização de documentação e testes de aceitação. Nenhuma funcionalidade nova é adicionada nessa branch. Quando o release está pronto, ela é mesclada tanto na Master (com uma tag de versão) quanto na Develop, para que as correções feitas durante a preparação sejam incorporadas ao desenvolvimento contínuo.
Alternativa E — ❌ Incorreta
A branch Feature é criada a partir da Develop para o desenvolvimento de uma nova funcionalidade. Ela é temporária e, ao ser concluída, é mesclada de volta na Develop. Não é o local de testes e ajustes finais antes do lançamento; é o ambiente de desenvolvimento de funcionalidades específicas.