{"meta":{"title":"Alterações de código de pilha em solicitações de pull","intro":"Crie uma pilha de solicitações de pull pequenas e dependentes que podem ser rapidamente revisadas.","product":"Solicitações de pull","breadcrumbs":[{"href":"/pt/pull-requests","title":"Solicitações de pull"},{"href":"/pt/pull-requests/tutorials","title":"Tutoriais"},{"href":"/pt/pull-requests/tutorials/stack-code-changes-in-pull-requests","title":"Solicitações de pull de pilha"}],"documentType":"article"},"body":"# Alterações de código de pilha em solicitações de pull\n\nCrie uma pilha de solicitações de pull pequenas e dependentes que podem ser rapidamente revisadas.\n\n> \\[!NOTE] Esse recurso está em versão prévia pública e está sujeito a alterações.\n\nSolicitações de pull grandes são difíceis de examinar e criar gargalos, especialmente quando você gera um alto volume de código em pouco tempo. A qualidade da revisão também se degrada à medida que o tamanho da solicitação de pull aumenta. Os revisores podem deslizar o resultado, perder problemas ou procrastinar e deixar a solicitação de pull até ficar obsoleta e desenvolver conflitos de mesclagem.\n\nAs solicitações de pull empilhadas mantêm as alterações de código grandes revisáveis.\n\nUma 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.\n\nEste tutorial explica como usar solicitações de pull empilhadas para criar um recurso em camadas individualmente revisáveis. Por nosso exemplo, consideraremos como adicionar autenticação de usuário a um aplicativo. Usaremos a `gh stack` extensão em GitHub CLI.\n\n## Pré-requisitos\n\nPara seguir este tutorial, você precisará instalar GitHub CLI e a `gh stack` extensão. Você precisará do seguinte:\n\n* GitHub CLI (`gh`) 2.90.0 ou posterior e Git 2.20 ou posterior.\n  * Autenticar GitHub CLI com `gh auth login`.\n* Um GitHub repositório para o qual você pode enviar por push.\n\nIn GitHub CLI, instale a `gh stack` extensão.\n\n```bash\ngh extension install github/gh-stack\n```\n\n## 1. Criar uma pilha antes de gerar código\n\nUma boa pilha é como construir uma casa: comece com uma base forte, enquadrem as paredes, instale a fiação e, em seguida, conclua o drywall. Cada camada é criada dependendo da abaixo. No final, um revisor deve ser capaz de ler as solicitações de pull de baixo para cima e seguir o desenvolvimento do recurso.\n\n* Divida o recurso em camadas. Cada camada deve ser uma única alteração coerente que pode ser revisada por conta própria.\n  * Mantenha cada camada pequena o suficiente para que sua solicitação de pull seja uma leitura rápida. Se uma camada parece precisar de uma descrição longa para revisar, provavelmente é muito grande.\n  * Decida os limites por conta própria. Você tem a forma da pilha.\n* Ordene as camadas por dependência. As alterações fundamentais vão na parte inferior. Qualquer coisa que dependa deles vai mais alto. Para autenticação, isso pode ser:\n  * Camada 1: modelo de dados e migração\n  * Camada 2: pontos de extremidade CRUD\n  * Camada 3: middleware JWT e guardas\n  * Camada 4: integração e testes de unidade\n\n## 2. Criar a camada inferior primeiro\n\nInicie a pilha com a base. Tudo acima depende de acertar essa camada.\n\n* Crie a pilha e crie a primeira camada com base em seu plano. Crie-o com `gh stack init BRANCH-NAME-1`, considere usar um prefixo para manter os nomes de ramificação arrumados.\n* Examine a alteração por conta própria antes de seguir em frente. Um erro na camada inferior se propaga para cada branch acima dele, portanto, dê-lhe uma revisão antes de seguir em frente.\n\n## 3. Empilhar cada nova camada de código na parte superior\n\nCom a base em vigor, crie o restante do recurso uma camada de cada vez.\n\n* Adicione a próxima camada e implemente-a no contexto das camadas abaixo. Adicione um branch à parte superior da pilha `gh stack add BRANCH-NAME-NEXT` e confirme o trabalho lá.\n* Se uma camada começar a crescer muito grande, considere se ela está fora de seu plano ou se você realmente precisa de duas camadas em vez de uma.\n* Crie novos branches para cada camada conforme o uso, para que cada ramificação permaneça uma diferença limpa e autocontida.\n* Quando estiver pronto para criar solicitações de pull, envie sua pilha com `gh stack submit`.\n* Permita que cada solicitação de pull fique por conta própria. Um título focado e uma descrição concisa e significativa da camada geralmente são suficientes.\n\n## 4. Examine as solicitações de pull por conta própria antes de solicitar uma revisão\n\nCada camada é pequena, facilitando a auto-revisão também. Faça uma passagem em cada ramificação antes de envolver colegas de equipe. Os revisores devem receber alterações em que você já confia.\n\n* Execute seus testes, linters e verificação de código em cada branch para verificar cada camada em relação aos seus padrões antes de solicitar revisões.\n\n## 5. Solicitar revisões para a pilha, começando na parte inferior\n\nCom as camadas criadas, os revisores obtêm pequenas diferenças em vez de uma grande parede de código.\n\n* Se as dependências estiverem fortemente integradas, solicite revisões começando na parte inferior da pilha, para que você possa integrar alterações na pilha antes das revisões subsequentes.\n* Se você precisar de revisões de pessoas separadas para diferentes camadas, os revisores poderão trabalhar em paralelo. Uma pessoa pode examinar o modelo de dados enquanto outra revisa os pontos de extremidade e nem trabalha com a revisão de todo o recurso.\n\n## 6. Iterar nos comentários\n\nOs comentários de revisão são baseados em camadas individualmente, não em todo o recurso. As pilhas permitem corrigir a camada certa no local e levar a alteração para cima.\n\n* Revise a camada sinalizada por um revisor. Mova para o branch direito, faça a alteração e confirme-a lá.\n* Mantenha cada correção na camada à qual pertence. Uma alteração feita no branch errado pode confundir e criar erros upstack.\n* Navegue por branches com `gh stack down`, `gh stack up`ou `gh stack checkout BRANCH-NAME`. Em seguida, confirme suas alterações, execute `gh stack rebase --upstack` para rebasear os branches acima e, em seguida `gh stack push` , para carregar as alterações na pilha.\n\n## 7. Mesclar da camada inferior\n\nUma pilha é mesclada em ordem, começando da camada apontando para o branch principal. Mesclar camadas de uma só vez, ou um por um, e GitHub automaticamente redireciona a próxima camada para apontar para a principal.\n\n* Mesclar a pilha um de cada vez trabalhando de baixo para cima ou de qualquer lugar na pilha e todos os branches abaixo da solicitação de pull que você mesclar serão mesclados de baixo para cima.\n* A diferença de cada camada permanece exatamente a mesma em relação ao pai, apenas as alterações de base, facilitando a mesclagem de uma camada de cada vez sem afetar o trabalho ou as revisões em andamento.\n* Use uma fila de mesclagem para que cada camada se mescle na ordem depois de aprovada e suas verificações passem. Você não precisa esperar em toda a pilha de uma vez.\n\nDepois que a camada superior se mesclar, todo o recurso será desembarcado. Cada peça foi revisada de forma mais eficaz como uma pequena e deliberada mudança em vez de uma grande solicitação de pull.\n\n## Leitura adicional\n\n* [Sobre solicitações de pull empilhadas](/pt/pull-requests/get-started/about-stacked-prs)\n* [Gerenciando solicitações de pull empilhadas](/pt/pull-requests/how-tos/create-pull-requests/managing-stacked-pull-requests)\n* [Comandos da CLI de solicitações de pull empilhadas](/pt/pull-requests/reference/stacked-prs-cli-commands)"}