{"meta":{"title":"Gerenciando solicitações de pull empilhadas","intro":"Reestruturar solicitações de pull empilhadas, basear novamente seus branches e fazer alterações em camadas inferiores usando GitHub CLI.","product":"Solicitações de pull","breadcrumbs":[{"href":"/pt/pull-requests","title":"Solicitações de pull"},{"href":"/pt/pull-requests/how-tos","title":"How-tos"},{"href":"/pt/pull-requests/how-tos/create-pull-requests","title":"Criar solicitações de pull"},{"href":"/pt/pull-requests/how-tos/create-pull-requests/managing-stacked-pull-requests","title":"Gerenciar PRs empilhadas"}],"documentType":"article"},"body":"# Gerenciando solicitações de pull empilhadas\n\nReestruturar solicitações de pull empilhadas, basear novamente seus branches e fazer alterações em camadas inferiores usando GitHub CLI.\n\n> \\[!NOTE] Esse recurso está em versão prévia pública e está sujeito a alterações.\n\nÀ medida que você itera em uma pilha, muitas vezes você precisa fazer alterações em uma camada inferior, se basear novamente para manter um histórico linear ou reestruturar seus branches. A `gh stack` extensão lida com essas tarefas com operações em GitHub CLI cascata que atualizam todas as ramificações afetadas. Consulte [Comandos da CLI de solicitações de pull empilhadas](/pt/pull-requests/reference/stacked-prs-cli-commands).\n\n## Fazendo alterações em uma camada inferior\n\nQuando você estiver trabalhando na camada superior e precisar alterar algo mais baixo na pilha, faça a alteração no branch em que ela pertence e rebasee, em vez de trabalhar em torno dela na camada atual.\n\n1. Navegue até o branch que precisa da alteração.\n\n   ```shell copy\n   gh stack down\n   ```\n\n   Você também pode fazer check-out de um branch específico com `gh stack checkout BRANCH-NAME`.\n\n2. Faça a alteração e confirme-a.\n\n   ```shell copy\n   git add .\n   git commit -m \"helpful-commit-message\"\n   ```\n\n3. Basear novamente os branches acima para pegar a alteração.\n\n   ```shell copy\n   gh stack rebase --upstack\n   ```\n\n4. Envie por push as ramificações atualizadas e retorne para onde você estava trabalhando.\n\n   ```shell copy\n   gh stack push\n   gh stack top\n   ```\n\n## Rebasing sua pilha\n\nUma pilha deve ter um histórico linear entre seus branches antes de poder mesclar. A execução `gh stack rebase` executa uma rebase em cascata em que cada ramificação é rebased na parte superior do branch abaixo dela, a partir dele `main`, de modo que cada ramificação pega as alterações mais recentes de todas as camadas inferiores.\n\n1. Basear novamente a pilha. Por padrão, isso rebaseia todas as ramificações da parte inferior para a parte superior.\n\n   ```shell copy\n   gh stack rebase\n   ```\n\n   Para limitar a rebase, use `--downstack` para se basear novamente da camada mais baixa até o branch atual ou `--upstack` para se basear novamente do branch atual até a parte superior.\n\n2. Envie por push as ramificações atualizadas. Isso usa `--force-with-lease` para atualizar com segurança as ramificações rebased.\n\n   ```shell copy\n   gh stack push\n   ```\n\nSe uma rebase encontrar um conflito, `gh stack rebase` pare e liste os arquivos conflitantes.\n\n* Resolva os marcadores nos arquivos afetados, prepare-os com `git add`e execute `gh stack rebase --continue`.\n* Para começar, execute `gh stack rebase --abort` para restaurar todos os branches para seu estado de pré-rebase.\n\n> \\[!NOTE]\n> Você também pode disparar uma rebase do lado do servidor da solicitação de pull, mas essas confirmações não são assinadas. Se o repositório exigir confirmações assinadas, rebasee para GitHub CLI que as confirmações sigam a configuração de assinatura de confirmação do Git local.\n\n### Rebasing do GitHub site\n\nQuando uma pilha não é linear, um botão **de pilha rebase** é exibido na caixa de mesclagem. Selecioná-lo dispara uma rebase em cascata do lado do servidor que:\n\n1. Rebases a pilha inteira em cima do tronco mais recente, como `main`.\n2. Rebaseia cada branch não mesclado na parte superior de seu branch base, trabalhando da parte inferior da pilha para cima.\n3. Efetua push de cada branch rebased para atualizar o remoto.\n\nDepois que a rebase for concluída, cada solicitação de pull refletirá os branches atualizados e as verificações de CI serão disparadas novamente.\n\n> \\[!NOTE]\n> As confirmações criadas por uma rebase do lado do servidor **não** são assinadas. Se o repositório exigir confirmações assinadas, recue para GitHub CLI que `gh stack rebase` as confirmações sigam a configuração de assinatura de confirmação do Git local e, em seguida, envie por push com `gh stack push`.\n\n## Reestruturar uma pilha\n\nTalvez você queira alterar a composição de uma pilha. Por exemplo, se você precisar soltar um branch, combinar branches, inserir um branch, reordenar ou renomear, use o comando `gh stack modify`interativo.\n\nAntes de executar `gh stack modify`, verifique o seguinte:\n\n* Você tem uma pilha ativa com check-out.\n* Sua árvore de trabalho está limpa.\n* Nenhuma rebase está em andamento.\n* Nenhuma solicitação de pull é enfileirada para mesclagem.\n* O histórico de confirmação é linear.\n\n1. Abra a interface do usuário do terminal de modificação.\n\n   ```shell copy\n   gh stack modify\n   ```\n\n2. Selecione um branch e prepare uma operação. A reordenação e as alterações estruturais (soltar, dobrar, inserir, renomear) não podem ser misturadas na mesma sessão.\n\n   * `x` — solte um branch e suas confirmações\n   * `d` — dobre a ramificação na que está abaixo dela\n   * `u` — dobre a ramificação na que está acima dela\n   * `i`\n     /\n     `I` — insira um novo branch abaixo ou acima do cursor\n   * `r` — renomeie um branch\n   * <kbd>Shift</kbd>+<kbd></kbd> / ↑<kbd>Shift</kbd>+<kbd>↓</kbd> — reordenar uma ramificação\n   * `z` — desfazer a última ação em etapas\n\n3. Aplique as alterações em etapas salvando-as. Nada é modificado até você salvar.\n\n   Use <kbd>ctrl/cmd</kbd>+<kbd>s</kbd>.\n\n   Se ocorrer um conflito durante a aplicação, resolva-o e execute-o `gh stack modify --continue`ou execute-o `gh stack modify --abort` para restaurar o estado de pré-modificação.\n\n4. Envie por push os branches atualizados e recrie a pilha.GitHub\n\n   ```shell copy\n   gh stack submit\n   ```\n\n## Desempredando do GitHub site\n\nPara dissolver uma pilha do site, por exemplo, para reordená-la ou reorganizar, use a opção **Unstack** na pilha.\n\nO descomprupamento remove as solicitações de pull **abertas, de rascunho e fechadas** da pilha. Cada um mantém seu branch base atual, mas não está mais vinculado aos outros, e os requisitos de mesclagem de pilha e de mapa de pilha desaparecem deles.\n\n**As solicitações de pull mescladas e enfileiradas permanecem na pilha.** Depois que uma solicitação de pull é mesclada ou enfileirada para mesclagem, como parte de uma pilha, ela não pode ser descompilhada. Uma pilha é dissolvida inteiramente somente quando nenhuma de suas solicitações de pull foi mesclada ou está na fila para mesclagem; caso contrário, ele persistirá com essas solicitações de pull ainda nele.\n\nPara reordenar ou reestruturar uma pilha sem dissolvê-la, use o `gh stack modify` comando em vez disso. Consulte [Reestruturar uma pilha](#restructuring-a-stack).\n\n## Sincronizando seu ambiente local após mesclagens\n\nQuando uma solicitação de pull na parte inferior da pilha se mescla, atualize o estado local com um único comando de sincronização. Para podar automaticamente branches locais para solicitações de pull mescladas ao mesmo tempo, adicione a opção `--prune` .\n\n```shell copy\ngh stack sync --prune\n```\n\nIsso busca as alterações mais recentes, encaminha rapidamente o tronco, rebaseia os branches restantes nele, envia por push os branches atualizados e sincroniza o status da solicitação de pull.GitHub\n\n### Puxando solicitações de pull adicionadas à pilha em GitHub\n\nSe outra pessoa adicionar solicitações de pull à pilha GitHub, `gh stack sync` busque os novos branches e acrescente-os à pilha local para que ele espelha o controle remoto. Uma atualização remota limpa como essa é retirada automaticamente, portanto `gh stack sync` , é segura para ser executada na automação.\n\n### Resolvendo uma pilha divergente\n\nSuas pilhas locais e remotas divergem quando nenhuma das duas é uma extensão limpa da outra, por exemplo, quando você adiciona uma ramificação localmente enquanto diferentes solicitações de pull são adicionadas à mesma pilha.GitHub Quando isso acontece, `gh stack sync` não é possível mesclar os dois automaticamente. Em um terminal interativo, ele oferece três opções:\n\n* **Use a pilha remota como a fonte da verdade.** Substitui a composição da pilha local pelos controles remotos, puxando os branches ausentes. Se você estava em um branch que a pilha remota não contém mais, você é movido para o branch sobrevivente mais próximo. Isso requer uma árvore de trabalho limpa sem alterações não confirmadas.\n* **Exclua a pilha em GitHub.** Exclui o objeto GitHub de pilha e interrompe a sincronização. Suas solicitações de pull e ramificações locais não são intocadas. Recrie a pilha com `gh stack submit`, que também cria solicitações de pull para quaisquer branches que você ainda não enviou. Execute `gh stack modify` primeiro se você quiser alterar sua estrutura.\n* **Cancelar.** Anula a sincronização sem enviar branches por push ou atualizar nenhuma solicitação de pull.\n\nEm um terminal não interativo, como CI, uma divergência anula a sincronização sem enviar branches por push ou atualizar solicitações de pull. Resolva-o descompilhando e recriando a pilha.\n\n## Próximas Etapas \n\n* [Revisão de solicitações de pull empilhadas](/pt/pull-requests/how-tos/review-pull-requests/reviewing-stacked-pull-requests)\n* [Mesclar solicitações de pull empilhadas](/pt/pull-requests/how-tos/merge-and-close-pull-requests/merging-stacked-pull-requests)"}