# Solução de problemas de solicitações de pull empilhadas

Resolva problemas comuns com solicitações de pull empilhadas, incluindo conflitos de rebase, mesclagens bloqueadas, operações interrompidas e problemas de fila de mesclagem.

> \[!NOTE] Esse recurso está em versão prévia pública e está sujeito a alterações.

Este artigo aborda problemas comuns que você pode encontrar ao trabalhar com solicitações de pull empilhadas e como resolvê-las.

## Uma rebase relata um conflito

Quando uma rebase em cascata encontra um conflito, `gh stack rebase` interrompe e lista os arquivos conflitantes.

Para resolver o conflito e continuar:

1. Abra cada arquivo conflitante e resolva os marcadores de conflito (`<<<<<<<`, , `=======`). `>>>>>>>`

2. Preparar os arquivos resolvidos.

   ```shell
   git add .
   ```

3. Continue o rebase. As ramificações restantes recebem rebase automaticamente.

   ```shell
   gh stack rebase --continue
   ```

Se o conflito for muito complexo ou você quiser recomeçar, aborte o rebase para restaurar todas as ramificações ao estado anterior ao rebase.

```shell
gh stack rebase --abort
```

## Uma sincronização interrompida por causa de um conflito

Se um conflito for detectado durante a execução de `gh stack sync`, todas as ramificações serão restauradas a seu estado original, de modo que nada fique parcialmente atualizado. Resolva o conflito interativamente executando uma nova base diretamente e, em seguida, envie por push os branches atualizados.

```shell
gh stack rebase
gh stack push
```

## Uma sessão de modificação não será iniciada

`gh stack modify` requer um estado inicial limpo. Se não iniciar, confirme se:

* Você tem uma stack ativa em check-out.
* Sua árvore de trabalho está limpa.
* Nenhuma rebase está em andamento.
* Nenhum pull request está na fila para mesclagem.
* O histórico de commits é linear. Se não for, execute `gh stack rebase` primeiro.

## Uma sessão de modificação foi interrompida

Se `gh stack modify` for interrompido, por exemplo, por um conflito que você não queira resolver ou por uma falha no terminal, você pode restaurar a pilha para o estado em que ela estava antes de você começar. Um instantâneo de antes da modificação é armazenado localmente em cache para recuperação.

```shell
gh stack modify --abort
```

Se ocorreu um conflito durante a aplicação de alterações e você deseja continuar, resolva o conflito, configure os arquivos com `git add`e execute `gh stack modify --continue`.

## Uma solicitação de pull não pode ser mesclada

Um pull request em uma pilha só pode ser mesclado quando ele, e todos os pull requests abaixo dele, atendem a todos os requisitos de mesclagem, e a pilha tem um histórico totalmente linear. Se a mesclagem estiver bloqueada, verifique se:

* O pull request e todos os pull requests abaixo têm as revisões necessárias e verificações aprovadas.
* O empilhamento tem histórico linear. Se as alterações foram enviadas para uma ramificação inferior ou o ramo principal avançou, o histórico talvez não seja mais linear.

Para restaurar um histórico linear, execute `gh stack rebase` e depois `gh stack push`, ou clique em **Rebase stack** na caixa de mesclagem. Para obter instruções, consulte [Gerenciando solicitações de pull empilhadas](/pt/pull-requests/how-tos/create-pull-requests/managing-stacked-pull-requests).

## A mesclagem parou no meio da pilha

As verificações de pré-mesclagem são executadas antes de qualquer mesclagem, mas uma mesclagem ainda pode falhar. Por exemplo, devido a um conflito inesperado ou uma falha intermitente. Se ocorrer uma falha no meio do processo, a mesclagem será interrompida nesse pull request.

* Pull requests abaixo que foram mesclados com sucesso permanecem na branch base.
* A pull request que falhou e as pull requests acima permanecem abertas.

Resolva o problema no pull request com falha e tente fazer a mesclagem novamente para integrar o restante da pilha.

## Um pull request foi removido da fila de merge

As pilhas permanecem juntas na fila de merge. Se uma solicitação de pull for removida ou ejetada da fila, todas as solicitações de pull acima dela na pilha também serão ejetadas e removidas. Adicione novamente a pilha à fila depois que o problema subjacente for resolvido.

Uma pilha grande também pode ser dividida entre grupos de mesclagem consecutivos: a fila de mesclagem permite que um grupo de mesclagem exceda seu tamanho máximo configurado em até 50% para manter uma pilha unida e todas as solicitações de pull que não se ajustam continuarão em grupos subsequentes até que a pilha completa tenha aterrissado.

## Você fechou um pull request no meio da pilha

Fechar uma solicitação de pull no meio de uma pilha impede que todas as solicitações de pull acima dela sejam mescladas. A relação da pilha é preservada, portanto, para abrir um pull request diferente ou alterar a estrutura da pilha, você deve primeiro dissolver a pilha e depois recriá-la.

Você pode remover do GitHub site ou reestruturar a pilha com `gh stack modify`. O desempilhamento remove apenas as pull requests abertas, em rascunho e fechadas; as pull requests mescladas e enfileiradas permanecem na pilha. Confira [Gerenciando solicitações de pull empilhadas](/pt/pull-requests/how-tos/create-pull-requests/managing-stacked-pull-requests#unstacking-from-the-github-website) e [Gerenciando solicitações de pull empilhadas](/pt/pull-requests/how-tos/create-pull-requests/managing-stacked-pull-requests#restructuring-a-stack).

## Você não pode criar uma pilha entre forks

As solicitações de pull empilhadas exigem que todos os branches estejam no mesmo repositório. Não há suporte para pilhas entre bifurcações.