Que padrões de trabalho com Git utilizou?
sobes.tech IA
Resposta da IA
-
Git-flow: Utilizado para projetos com um ciclo de lançamentos claramente definido. É conveniente para gerir a fixação de funcionalidades, correções de bugs e preparação de lançamentos. Cria ramos
feature,develop,release,hotfix,master. -
GitHub flow: Aplicado em projetos onde a prioridade é dada a lançamentos frequentes e pequenos. Modelo simples baseado numa rama principal (
mainoumaster) e ramos para cada funcionalidade ou correção, que são fundidos imediatamente na rama principal após revisão. -
Desenvolvimento baseado em trunk: Praticado em projetos que requerem alta frequência de integração e implantação contínua. Os desenvolvedores fazem alterações diretamente na rama principal (
trunk) ou em ramos de curta duração, que se fundem rapidamente de volta. Elemento chave — Feature Toggles.
Além destes padrões principais, foi utilizado:
-
Rebase vs Merge: Dependendo da situação e dos acordos na equipa, usou-se
git rebasepara manter uma história limpa nas ramas locais antes de fundir, egit merge --no-ffpara preservar uma história de fusões explícita na rama principal.# Exemplo rebase git checkout feature/nova-funcionalidade git pull --rebase origin main # Resolução de conflitos, se houver git push -f origin feature/nova-funcionalidade # Ou pedido de pull para fundir em main# Exemplo merge --no-ff git checkout main git merge --no-ff feature/nova-funcionalidade -m "Fusão de feature nova-funcionalidade em main" git push origin main -
Squash and Merge: Frequentemente usado ao fundir ramos de funcionalidades na rama principal via Pull Request. Permite combinar vários commits do ramo de funcionalidade num único commit limpo na rama principal.
# Exemplo de squash merge através da interface da plataforma Git (GitHub, GitLab) # Geralmente realizado ao confirmar o Pull Request. -
Cherry-picking: Usado para transferir commits específicos entre ramos, por exemplo, para backporting de correções da rama principal para a rama de lançamento ou staging.
# Exemplo cherry-pick git checkout release/v1.2 git cherry-pick <commit_hash>