Nesta página

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.