Use solicitações de pull empilhadas para interromper grandes alterações de código em uma cadeia de solicitações de pull menores e dependentes que você pode examinar e mesclar independentemente.
Uma pilha é uma série de solicitações de pull no mesmo repositório em que cada solicitação de pull direciona o branch da solicitação de pull abaixo dela, formando uma cadeia ordenada que cai em um único branch, normalmente seu branch principal. Em vez de uma solicitação de pull grande, você obtém um conjunto de solicitações de pull menores. Como cada solicitação de pull tem sua própria diferença de foco, os colegas de equipe podem examinar e aprovar cada camada de forma independente.
Prerequisites
- GitHub CLI (
gh) 2.90.0 ou posterior e Git 2.20 ou posterior.- Autentique GitHub CLI com
gh auth login.
- Autentique GitHub CLI com
- Um GitHub repositório para o qual você pode enviar por push.
Instalar a extensão da CLI
gh extension install github/gh-stack
gh extension install github/gh-stack
Dica
Para usar pull requests empilhados com agentes de codificação de IA, como GitHub Copilot, instale a habilidade gh-stack.
gh skill install github/gh-stack
gh skill install github/gh-stack
Criar sua primeira stack
-
Para inicializar uma stack, navegue até o repositório e execute o comando a seguir. Isso cria uma entrada de acompanhamento e sua primeira branch.
Shell gh stack init
gh stack initVocê será solicitado a nomear seu primeiro branch. Por padrão, a pilha usa o branch padrão do repositório (por exemplo,
main) como o ramo principal, mas uma pilha pode ser direcionada a qualquer branch. -
Trabalhe em sua primeira branch como de costume: escreva código, prepare alterações e faça commit.
# ... write code ... git add . git commit -m "helpful-commit-message" -
Quando estiver pronto para a próxima unidade lógica de trabalho, adicione um novo branch à parte superior da pilha.
Shell gh stack add BRANCH-NAME # ... write code ... git add . git commit -m "Another-helpful-commit-message"
gh stack add BRANCH-NAME # ... write code ... git add . git commit -m "Another-helpful-commit-message" -
Efetue push de todos os branches para o remoto.
Shell gh stack push
gh stack push -
Crie solicitações de pull e vincule-as como uma pilha em GitHub.
Shell gh stack submit
gh stack submitCada pull request é criado com o branch base correto. Sua primeira ramificação aponta para
main, e a próxima ramificaçãoBRANCH-NAMEaponta para a primeira ramificação. Os revisores verão apenas o diff para essa camada. As solicitações de pull são vinculadas automaticamente como uma pilha em GitHub e você pode ver sua ordem e navegar rapidamente entre elas. -
Exiba a pilha e veja o estado completo a qualquer momento.
Shell gh stack view
gh stack viewEsse comando mostra todos os branches, seus links de pull request, status e o commit mais recente em cada um.
-
Use o comando
gh stack add -Am "MESSAGE"para colocar todas as alterações em stage, confirmar e criar a próxima branch em uma etapa. Você não precisará de um separadogit addougit commit. Se o branch atual ainda não tiver commits, o commit será feito nesse branch; se ele já tiver commits, um novo branch será criado.# Commit lands on the current branch gh stack add -Am "Auth middleware" # Current branch already has commits, so this creates the next branch gh stack add -Am "API routes" -
Quando estiver pronto, faça push de tudo e crie os pull requests.
Shell gh stack submit
gh stack submit