Por que seus PRs são um gargalo
Mega-PRs prejudicam a velocidade de desenvolvimento. Revisar centenas, muitas vezes milhares, de linhas de código torna-se uma tarefa impossível, levando a bugs ignorados, revisões superficiais e fadiga severa de revisão. Essas mudanças monolíticas impedem que outros desenvolvedores integrem seu trabalho, criando gargalos generalizados.
Consequência: escalada de conflitos de merge, ramificações de código que ficam obsoletas rapidamente e lançamentos dramaticamente atrasados. Esse ciclo ineficiente desperdiça inúmeras horas de engenharia, introduz riscos significativos na base de código e frustra as equipes de desenvolvimento com sua complexidade inerente.
O GitHub agora oferece Stacked PRs, uma resposta oficial e nativa da plataforma para esse problema persistente. Esse recurso robusto vai além das soluções alternativas da comunidade, integrando um gerenciamento de dependências poderoso diretamente ao seu fluxo de trabalho.
O conceito central é simples: divida grandes mudanças de código em uma cadeia de pull requests menores e dependentes. Cada PR é construído diretamente sobre o anterior, permitindo revisão, aprovação e merge independentes sem bloquear todo o recurso.
Ilustre esta cadeia de dependência: seu PR fundamental inicial tem como alvo a main — por exemplo, uma migração crítica de esquema de banco de dados. Em seguida, um segundo PR tem como alvo esse primeiro PR, implementando novas rotas de API dependentes do esquema atualizado. Finalmente, um terceiro PR tem como alvo o segundo PR, adicionando componentes de UI que consomem a nova API. Isso cria uma progressão clara, lógica e gerenciável para recursos complexos.
Seu Novo Fluxo de Trabalho: Empilhar, Adicionar, Enviar
Implemente stacked PRs usando a GitHub CLI para um fluxo de trabalho simplificado e eficiente. Inicie sua nova pilha com gh stack init [branch-name]. Este comando estabelece sua ramificação fundamental, baseando-a automaticamente na ramificação padrão do seu repositório, normalmente main. Isso garante que suas mudanças de nível mais baixo estejam prontas primeiro.
Progrida seu desenvolvimento incrementalmente adicionando mais mudanças. Use gh stack add [branch-name] para criar uma nova ramificação que se baseia automaticamente na ramificação anterior da sua pilha. Isso estabelece uma cadeia de dependência clara, garantindo que cada mudança subsequente seja construída logicamente sobre a anterior, desde tipos fundamentais até rotas de API.
Crucialmente, as operações padrão do Git persistem sob essa conveniência da CLI. Cada comando gh stack add cria, em última análise, uma nova ramificação Git, e você mantém a flexibilidade de incluir vários commits dentro de qualquer ramificação individual na sua pilha. Isso proporciona um desenvolvimento estruturado sem sacrificar o controle granular sobre o histórico de commits.
Quando todas as mudanças estiverem concluídas em sua pilha, consolide seus esforços com um único comando: gh stack submit. Isso envia cada ramificação da sua pilha para o GitHub simultaneamente, gerando pull requests individuais para cada uma. O GitHub então renderiza isso como um stacked PR coeso na UI, simplificando a revisão.
Embora a GitHub CLI ofereça automação e conveniência poderosas, ela não é um pré-requisito estrito. Os desenvolvedores ainda podem construir pilhas manualmente, garantindo que cada pull request aponte explicitamente para a ramificação base anterior correta. O GitHub detecta e visualiza essas dependências de forma inteligente, mesmo sem a orquestração da CLI, proporcionando os mesmos benefícios de UI e experiência de revisão.
Além da CLI: Stacks na Prática
O GitHub aprimora os stacked PRs com suporte de interface de primeira classe. Observe o ícone de pilha distinto agora presente na página de lista de pull requests, sinalizando instantaneamente que um PR faz parte de uma cadeia de dependência maior. Este indicador visual simplifica a identificação e o gerenciamento de trabalhos interconectados, melhorando a visibilidade geral do projeto.
Mergulhe em qualquer PR dentro de uma pilha para aproveitar a stack view dedicada. Esta interface poderosa visualiza toda a cadeia de dependência, mapeando claramente a posição de cada PR, seu branch de destino e seu status de revisão atual. Você obtém clareza imediata sobre conjuntos de recursos complexos, entendendo as dependências e o progresso rapidamente. Para obter detalhes mais fundamentais sobre como trabalhar com pull requests e suas novas capacidades de empilhamento, consulte About stacked pull requests - GitHub Docs.
A verdadeira eficiência chega com o botão Merge stack. Depois que todos os PRs individuais em uma pilha obtêm aprovação, um único clique mescla toda a cadeia aprovada no branch principal. O GitHub executa automaticamente a mesclagem sequencial, lidando com todas as etapas intermediárias, como rebasing e atualizações de branch. Esta operação atômica garante uma mesclagem limpa e integrada sem intervenção manual, acelerando seu pipeline de entrega e minimizando conflitos de merge.
Gostando do artigo? Receba um assim na sua caixa de entrada toda manhã.
um e-mail por dia · cancele em dois cliques · sem rastreadores de terceiros
Stacks não são apenas para humanos
Diffs menores e focados desbloqueiam imediatamente os revisores, acelerando drasticamente os ciclos de revisão. A redução na troca de contexto e na carga cognitiva significa aprovações mais rápidas e feedback de maior qualidade. As equipes agora iteram mais rápido, implantando recursos com eficiência sem precedentes.
Além dos fluxos de trabalho humanos, os Stacked PRs desbloqueiam um futuro poderoso para a IA. Agentes de IA agora podem enviar recursos complexos e de várias partes como pull requests estruturados e dependentes. Isso divide o código gerado por IA monolítico em partes gerenciáveis e revisáveis. Em vez de um único despejo de código massivo, os agentes produzem uma cadeia de dependência revisável por humanos, fornecendo um caminho claro e auditável para integrar contribuições sofisticadas de IA.
Este recurso é mais do que uma otimização de fluxo de trabalho; ele representa uma mudança fundamental nas práticas de desenvolvimento colaborativo. Ele redefine fundamentalmente como as equipes abordam a entrega de recursos complexos e o trabalho simultâneo. A resposta dos desenvolvedores tem sido extremamente positiva, validando a visão do GitHub para a evolução do desenvolvimento central. Espere aumentos imediatos e significativos na velocidade da equipe e no rendimento geral do projeto.
Perguntas frequentes
O que são GitHub Stacked PRs?
Um recurso nativo do GitHub para criar uma cadeia de pull requests menores e dependentes que podem ser revisados independentemente e mesclados juntos como uma única unidade.
Preciso do GitHub CLI para usar Stacked PRs?
Não. O CLI (com comandos gh stack) simplifica o processo, mas você pode criar uma pilha manualmente direcionando os PRs subsequentes para o branch do PR anterior. O GitHub detecta a pilha automaticamente.
Como uma pilha é diferente de apenas encadear PRs?
Embora o conceito de Git seja semelhante, o GitHub agora reconhece oficialmente essas cadeias como uma 'stack'. Isso fornece uma interface dedicada para gerenciar, visualizar e mesclar toda a pilha de uma só vez, o que anteriormente era um processo manual.
Posso trabalhar em outros branches enquanto tenho uma pilha ativa?
Sim. Uma pilha é uma camada de gerenciamento sobre o Git. Você pode usar comandos padrão do Git, como git checkout, para alternar para branches não relacionados e, posteriormente, retornar a um branch dentro da sua pilha sem problemas.

