Develop Branch é o branch principal de integração no Git Flow onde todos os branches feature concluídos são mesclados antes de preparar um lançamento. Ao contrário do main, develop contém as alterações mais recentes, mas ainda não publicadas — aqui ocorre a integração diária de código de todos os desenvolvedores da equipe. De acordo com Atlassian, 2024, develop é um branch obrigatório no Git Flow e fornece um ambiente de integração estável para a equipe.
Pontos principais
Develop Branch (branch de desenvolvimento) é um branch de longa duração no Git Flow que serve como hub central para integração de código de todos os desenvolvedores. Os branches feature são mesclados nele após a conclusão do desenvolvimento e revisão de código.
O código no develop está sempre em estado pronto para criar um lançamento, embora ainda não implantado em produção. Isso significa que todas as funcionalidades no develop passaram por revisão, testes e verificações de integração, mas ainda aguardam seu ciclo de lançamento.
Ao contrário do main, onde cada versão de código é um lançamento, develop contém um fluxo contínuo de alterações. Commits no develop aparecem à medida que branches feature são mesclados, o que pode acontecer várias vezes ao dia.
De acordo com Vincent Driessen, 2010, develop é um elemento-chave de um modelo de ramificação bem-sucedido, pois separa o trabalho em rascunho das versões prontas para lançamento.
Entender as diferenças entre develop e main é fundamental para um fluxo de trabalho Git Flow adequado. Esses branches têm funções diferentes e requisitos de estabilidade distintos.
| Característica | Develop | Main / Master |
|---|---|---|
| Propósito | Integração de novas funcionalidades | Código de lançamento estável |
| Estabilidade | Alta (após testes) | Máxima (produção) |
| Frequência de commits | Diária (mesclagem feature) | Por lançamento (a cada 1-4 semanas) |
| Origem de branches | Dele são criados feature | Dele são criados hotfix |
| Mesclagem | Da feature via PR | Da release via merge |
A separação em develop e main permite que a equipe integre continuamente novo código sem arriscar a estabilidade da versão de produção. Os desenvolvedores podem ver seu código no develop imediatamente após a aprovação do PR, mesmo antes do lançamento oficial.
No modelo Git Flow, develop ocupa um lugar central entre os branches feature (fonte de alterações) e os branches release (preparação para lançamento). Entender essa hierarquia é a base para uma ramificação eficaz.
Essa estrutura garante que develop sempre contenha o código mais recente com todas as novas funcionalidades, enquanto main contém apenas código de produção verificado. Isso é especialmente importante para projetos móveis com longos ciclos de revisão na App Store e Google Play.
Develop atua como o elo central entre branches feature, release e hotfix. Entender as direções de mesclagem é essencial para prevenir conflitos e perda de commits.
A qualidade do código no develop deve ser alta, mas não absoluta. Ao contrário do main, onde cada erro significa um hotfix urgente, develop permite imperfeições menores que serão corrigidas antes do lançamento.
Requisitos mínimos para o código antes de mesclar no develop:
Verificações automatizadas no pipeline CI/CD devem ser executadas em cada push no develop. Se a compilação quebrar, o desenvolvedor responsável deve corrigir o problema em uma hora ou reverter seu commit.
Configurar GitHub Actions para develop garante que cada PR passe por verificações automatizadas antes da mesclagem. Um pipeline típico inclui compilação, testes e linting.
# GitHub Actions — verificação do develop após mesclagem
name: Develop CI
on:
pull_request:
branches: [develop]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Unit tests
run: ./gradlew testDebug
- name: Lint
run: ./gradlew lint
- name: Build
run: ./gradlew assembleDebug
A mesclagem no develop deve seguir regras rigorosas para manter a estabilidade do branch de integração. Violar essas regras leva a conflitos, compilações quebradas e perda de tempo da equipe.
A regra de PR atualizado é especialmente importante. Se um branch feature foi criado há uma semana e o develop avançou 50 commits, a mesclagem direta pode causar conflitos que são melhor resolvidos no contexto do PR do que no develop.
As regras de proteção de branch são configurações no nível do GitHub, GitLab ou Bitbucket que evitam alterações incorretas no develop. Elas garantem que mesmo um push acidental não quebre o branch de integração.
Regras de proteção recomendadas para develop:
Configurar a proteção do develop leva 10 minutos, mas previne semanas de inatividade relacionadas a um branch de integração quebrado. Para projetos móveis com equipes multiplataforma, isso é especialmente relevante.
Vamos considerar um dia típico de um desenvolvedor: pela manhã ele atualiza o develop, cria um novo branch feature e, após concluir a tarefa, mescla as alterações de volta no develop.
# Sincronização matinal do develop
git checkout develop
git pull origin develop
# Criação de um novo branch feature a partir do develop
git checkout -b feature/add-push-notifications
# Trabalhando na funcionalidade...
git add . && git commit -m "Add FCM integration"
# Atualização do develop durante o desenvolvimento
git fetch origin develop
git rebase origin/develop
# Após aprovação do PR — atualizar develop local
git checkout develop
git pull origin develop
git branch -d feature/add-push-notifications
O comando git pull no develop realiza duas operações ao mesmo tempo: git fetch (recupera novos commits do servidor) e git merge (mescla com o branch local). Para o develop, este é o método padrão de sincronização.
Se um código que quebrou a compilação chegar ao develop, é preciso agir rapidamente. Cada hora de inatividade do develop é trabalho bloqueado para toda a equipe de desenvolvimento.
Se um código que quebrou a compilação chegar ao develop, use git revert para criar um novo commit que desfaça as alterações problemáticas. Não use git reset no develop — ele reescreve o histórico que outros membros da equipe já possuem.
# Encontrar o commit problemático
git log --oneline develop
# Cancelar commit via revert (seguro)
git revert a1b2c3d
# Enviar correção para o develop remoto
git push origin develop
# Visualizar alterações em um commit específico
git show a1b2c3d --stat
Perguntas frequentes
Para projetos com um ou dois desenvolvedores, develop é frequentemente redundante — main e branches feature são suficientes. Assim que a equipe cresce para 3+ pessoas, develop se torna necessário para isolar funcionalidades inacabadas do código de produção estável.
Não, commits diretos no develop são proibidos em qualquer projeto profissional. Todas as alterações passam por um Pull Request com revisão de código e verificações automatizadas. A exceção são edições administrativas no README ou configuração de CI, mas mesmo estas são melhor feitas através de um PR.
No trunk-based development não há um branch develop separado — todos os desenvolvedores trabalham no main com branches feature muito curtos (1-2 dias). É uma alternativa ao Git Flow, popular na cultura DevOps com alto nível de automação de testes.
Após cada lançamento, o branch release é mesclado de volta no develop para incorporar todas as correções feitas durante a preparação do lançamento. Se isso não for feito, o develop divergirá do código de lançamento, causando conflitos no próximo lançamento.
Se o develop estiver quebrado, um desenvolvedor sênior cria um branch hotfix a partir do último commit estável, corrige o problema e mescla a correção diretamente no develop através de um PR com status especial. Após a recuperação, é realizada uma análise de causa raiz.
Resumo
Vamos desenvolver um aplicativo móvel chave na mão
A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.
Leia também