Stacks de branches e publicação
Um stack divide um trabalho relacionado em uma sequência de branches. Cada camada depende da anterior, permitindo revisar mudanças menores. O Riff separa a organização das branches no seu computador da publicação no provedor.
Montar um stack linear
Abra Stacks para o repositório ativo. Escolha uma branch existente ou crie uma camada e selecione sua branch pai. Por exemplo:
| Camada | Pai |
|---|---|
feature/data |
main |
feature/api |
feature/data |
feature/ui |
feature/api |
Faça as mudanças de cada camada na branch correspondente. Ao associar uma branch existente, o commit atual do pai precisa ser ancestral dela. Registre a relação antes de avançar ou reescrever o pai. Remover a associação mantém a branch e seus commits; desassocie primeiro as camadas dependentes.
O Riff aceita uma sequência linear de até 25 camadas, com até 200 commits por camada. Uma camada acompanhada pode ter uma filha na sequência. Commits de merge, ciclos e ancestrais incompatíveis são recusados.
Revisar e executar o restack
O restack reaplica os commits de cada camada sobre seu pai atualizado.
- Salve as edições pendentes em commit ou stash e conclua qualquer operação Git em andamento. As branches envolvidas precisam estar disponíveis, sem checkout em outra worktree.
- Se arquivos ignorados impedirem a operação, mova-os para fora da árvore de trabalho e confira o repositório novamente. O Riff não os exclui nem os guarda automaticamente em stash para o restack.
- Selecione uma camada e carregue a prévia. Revise a sequência completa, as branches pai, as quantidades de commits e o aviso de histórico publicado. Esse aviso usa referências remotas já presentes no computador; não é uma nova consulta ao servidor.
- Confirme o plano revisado. O Riff salva referências de recuperação antes de reescrever e confere novamente branches e commits. Hooks e assinatura configurados continuam ativos.
O restack não faz push. Reescrever uma branch já publicada pode exigir uma decisão separada sobre o histórico remoto; o fluxo de publicação abaixo não faz push forçado.
Continuar um conflito ou parar a sequência
Abra cada arquivo em conflito no diálogo de stacks, revise o resultado e salve. Continue depois de resolver os conflitos restantes. A sessão registrada pode ser retomada após reiniciar o Riff quando o repositório ainda corresponder a ela.
Parar próximas camadas preserva as camadas concluídas. Durante um conflito, termine a resolução atual e continue uma vez para parar depois dessa camada. Isso não desfaz o stack inteiro. Se outro processo alterou o repositório ou uma etapa interrompida não puder ser confirmada, confira o estado e as referências de recuperação preservadas antes de prosseguir.
Publicar pull requests encadeados
- Abra a área de publicação de Stacks e selecione o remoto e uma conexão compatível com o provedor. Cada camada precisa ter commits, estar baseada no pai atual e aceitar um push normal. A base remota precisa corresponder à base revisada.
- Carregue a prévia da publicação. Confira origem, destino, commit, título e descrição de cada branch. O primeiro pull request aponta para a base; cada seguinte aponta para a camada anterior.
- Confirme a publicação. O Riff envia as revisões conferidas e cria os pedidos em ordem. Um pull request existente compatível é reutilizado; uma consulta incompleta ao provedor não comprova a ausência de um pedido.
- Leia o resultado de cada camada e abra os links do provedor para continuar a revisão.
A conexão selecionada fornece as permissões da API do provedor. Operações Git por HTTPS usam as credenciais selecionadas; SSH mantém sua autenticação SSH configurada. O fluxo não faz merge dos pedidos, não exclui branches, não atualiza submódulos e não força o envio de histórico divergente.
Retomar uma publicação parcial
O progresso é registrado por camada. Pausar interrompe os próximos passos e mantém as branches e os pedidos já publicados. Retome depois de corrigir uma recusa confirmada de conexão ou permissão; o Riff confere novamente o repositório, a identidade e o estado remoto.
Um pedido pode ter resultado incerto se o provedor o recebeu, mas a resposta foi perdida. O Riff consulta o provedor antes de continuar e não repete a criação automaticamente só porque o pedido não apareceu na consulta. Confira o provedor e o estado exibido; uma sessão incerta não pode ser descartada pelo fluxo normal. A publicação não é uma transação única entre Git e provedor.
Consulte conflitos e recuperação para pontos de retorno ou contextos de trabalho para worktrees e contextos da sessão.