Introdução

Concluído

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

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

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

  • Velocidade de desenvolvimento: permita que as equipas trabalhem de forma independente sem se bloquearem umas às outras.
  • Garantia de qualidade: Manter a qualidade do código através de processos sistemáticos de revisão e testes.
  • Gerenciamento de versões: suporte versões de software previsíveis e confiáveis.
  • Mitigação de riscos: isole o trabalho experimental e forneça recursos de reversão.
  • Requisitos de conformidade: Atenda às normas de auditoria e regulatórias para gerenciamento de mudanças.

Estrutura de estratégia de ramificação empresarial

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

Fator Impacto na estratégia Questões-chave
Tamanho da equipa Complexidade da coordenação e frequência de fusão Quantos desenvolvedores trabalham simultaneamente?
Cadência de lançamento Ciclo de vida da filial e tempo de integração Com que frequência se faz a implementação na produção?
Requisitos de qualidade Revisão de processos e integração de testes Que nível de portões de qualidade são necessários?
Necessidades de conformidade Trilhas de auditoria e fluxos de trabalho de aprovação Que requisitos regulamentares 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 corporativos que exigem ciclos de teste extensos.

Objetivos de aprendizagem abrangentes

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

Desenho estratégico de ramificação:

  • Avalie e selecione fluxos de trabalho de ramificação Git apropriados com base no tamanho da equipe, na cadência de lançamento e nos requisitos de qualidade.
  • Projete estratégias de ramificação que suportem a entrega contínua, mantendo os padrões de qualidade e conformidade do código.
  • Implemente políticas de ramificação em escala empresarial e estruturas de governança.

Competências práticas de implementação:

  • Implemente fluxos de trabalho de ramificações de funcionalidades com o 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 bifurcação para projetos de código aberto e colaboração entre equipas distribuídas.
  • Estabeleça proteção de ramificação e restrições de fusão que imponham critérios de qualidade e requisitos de revisão.

Experiência da 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 fluxos de trabalho de ramificação para produtividade da equipe e velocidade de entrega.

Autoavaliação: avalie sua prontidão de ramificação

Fundamentos do Git

  • [ ] Você entende os conceitos básicos do Git como commits, ramificações e fusões?
  • [ ] Você está familiarizado com os conceitos de controle de versão distribuído?
  • [ ] Você sabe como resolver conflitos de fusão?

Experiência em Desenvolvimento de Equipas

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

Contexto Organizacional

  • [ ] Sua equipe tem cronogramas de lançamento específicos ou requisitos de conformidade?
  • [ ] Você está trabalhando com equipes distribuídas em fusos horários?
  • [ ] Você precisa coordenar com várias equipes ou colaboradores externos?

Pré-requisitos e preparação

Conhecimentos essenciais:

  • Fundamentos de DevOps: compreensão dos princípios de DevOps, integração contínua e conceitos de entrega.
  • Noções básicas de controle de versão: Familiaridade com os 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 Git: Familiaridade básica com comandos e conceitos do Git.
  • Fluxos de trabalho de solicitação pull: Experiência com processos de revisão de código.
  • Consciência de CI/CD: Compreensão dos processos de compilação e implementação automatizados.

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).