Introdução

Concluído

Estratégias eficazes de ramificação do Git são fundamentais para a entrega de software bem-sucedida em escala. Este módulo fornece diretrizes abrangentes sobre como projetar e implementar fluxos de trabalho de ramificação que dão suporte à entrega contínua, à colaboração em equipe e à garantia de qualidade. Você aprenderá a selecionar e implementar o modelo de ramificação correto para as necessidades da sua organização, seja trabalhando com pequenas equipes ágeis ou grandes organizações de desenvolvimento empresarial.

Por que a estratégia de ramificação importa

As equipes de desenvolvimento de software modernas exigem estratégias de ramificação que equilibram várias preocupações críticas:

  • Velocidade de desenvolvimento: permitir que as equipes trabalhem de forma independente sem bloquear umas às outras.
  • Garantia de qualidade: manter a qualidade do código por meio de processos sistemáticos de revisão e teste.
  • Gerenciamento de releases: Suportar releases de software confiáveis e previsíveis.
  • Mitigação de risco: isole o trabalho experimental e forneça recursos de reversão.
  • Requisitos de conformidade: atenda aos padrões regulatórios e de auditoria para gerenciamento de alterações.

Estrutura de estratégia de ramificação empresarial

Considerações estratégicas para seleção de modelo de ramificação:

Fator Impacto na estratégia Principais perguntas
Tamanho da equipe Complexidade de coordenação e frequência de mesclagem Quantos desenvolvedores funcionam simultaneamente?
Cadência de versão Ciclo de vida do ramo e momento de integração Com que frequência você implanta em produção?
Requisitos de qualidade Examinar processos e testar a integração Que nível de portões de qualidade são necessários?
Necessidades de conformidade Rastreamento de auditoria e processos de aprovação Quais requisitos regulatórios se aplicam?

As próprias equipes de desenvolvimento da Microsoft demonstram esses princípios em escala, usando o GitHub Flow para serviços que exigem implantação rápida e abordagens mais estruturadas para produtos empresariais que exigem ciclos de teste extensivos.

Objetivos de aprendizagem abrangentes

Depois de concluir este módulo, você dominará as estratégias de ramificação essenciais e poderá:

Design de ramificação estratégica:

  • Avalie e selecione os fluxos de trabalho de ramificação git apropriados com base no tamanho da equipe, na cadência da versão e nos requisitos de qualidade.
  • Crie estratégias de ramificação que dão suporte à entrega contínua, mantendo os padrões de qualidade e conformidade do código.
  • Implementar políticas de branching de escala empresarial e estruturas de governança.

Habilidades práticas de implementação:

  • Implemente fluxos de trabalho de branch de recursos com isolamento adequado, processos de revisão e estratégias de integração.
  • Configurar e gerenciar GitHub Flow para equipes que exigem implantação rápida e contínua.
  • Execute fluxos de trabalho de fork para projetos de código aberto e colaboração em equipe distribuída.
  • Estabeleça proteção de branch e restrições de mesclagem que imponham critérios de qualidade e requisitos de revisão.

Experiência em plataforma:

  • Aproveite os recursos avançados de ramificação do Azure Repos para ambientes de desenvolvimento corporativo.
  • Integre estratégias de ramificação com pipelines de CI/CD e estruturas de teste automatizadas.
  • Monitore e otimize os fluxos de trabalho de ramificação para a produtividade da equipe e a velocidade de entrega.

Autoavaliação: Avalie sua preparação para ramificação

Conceitos básicos do Git

  • [ ] Você entende as noções básicas do Git, como confirmações, branches e mesclagens?
  • [ ] Você está familiarizado com os conceitos de controle de versão distribuída?
  • [ ] Você sabe como resolver conflitos de mesclagem?

Experiência de desenvolvimento em equipe

  • [ ] Você já trabalhou em equipes usando repositórios compartilhados?
  • [ ] Você entende os processos de revisão de código e solicitações de pull?
  • [ ] Você está familiarizado com os conceitos de integração contínua?

Contexto organizacional

  • [ ] Sua equipe tem agendas de versão específicas ou requisitos de conformidade?
  • [ ] Você está trabalhando com equipes distribuídas entre fusos horários?
  • [ ] Você precisa coordenar com várias equipes ou colaboradores externos?

Pré-requisitos e preparação

Conhecimento essencial:

  • Conceitos básicos do DevOps: noções básicas sobre princípios de DevOps, integração contínua e conceitos de entrega.
  • Noções básicas de controle de versão: familiaridade com princípios de controle de versão (revisão benéfica, mas abrangente fornecida).
  • Experiência em desenvolvimento de software: Experiência em ambientes de desenvolvimento de software baseados em equipe.

Experiência recomendada:

  • Linha de comando do Git: familiaridade básica com os comandos e conceitos do Git.
  • Fluxos de trabalho de pull request: experiência com processos de revisão de código.
  • Compreensão de CI/CD: Entendimento dos processos automatizados de build e implantação.

Configuração necessária:

  • Instalação do Git: verifique se o Git está instalado e configurado em seu ambiente de desenvolvimento.
  • Conta do GitHub: acesso ao GitHub para exercícios práticos com fluxos de trabalho de ramificação modernos.
  • Acesso ao Azure DevOps: acesso da organização para exercícios do Azure Repos (pode ser criado durante o módulo).