Nesta página

Stacks de ramos e publicação

Um stack divide trabalho relacionado numa sequência de ramos. Cada camada depende da anterior, permitindo rever alterações menores. O Riff separa a organização dos ramos no computador da publicação no serviço de alojamento.

Criar um stack linear

Abra Stacks para o repositório ativo. Escolha um ramo existente ou crie uma camada e selecione o respetivo ramo pai. Por exemplo:

Camada Pai
feature/data main
feature/api feature/data
feature/ui feature/api

Faça as alterações de cada camada no ramo correspondente. Ao associar um ramo existente, o commit atual do pai precisa de ser ancestral desse ramo. Registe a relação antes de avançar ou reescrever o pai. Remover a associação mantém o ramo e os seus commits; desassocie primeiro as camadas dependentes.

O Riff aceita uma sequência linear 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.

Rever e executar o restack

O restack reaplica os commits de cada camada sobre o respetivo pai atualizado.

  1. Guarde as edições pendentes num commit ou stash e conclua qualquer operação Git em curso. Os ramos envolvidos precisam de estar disponíveis, sem checkout noutra worktree.
  2. Se ficheiros ignorados impedirem a operação, mova-os para fora da árvore de trabalho e verifique novamente o repositório. O Riff não os elimina nem os guarda automaticamente em stash para o restack.
  3. Selecione uma camada e carregue a pré-visualização. Reveja a sequência completa, os ramos 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 revisto. O Riff guarda referências de recuperação antes de reescrever e verifica novamente ramos e commits. Hooks e assinatura configurados permanecem ativos.

O restack não faz push. Reescrever um ramo já publicado 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 ficheiro em conflito no diálogo de stacks, reveja o resultado e guarde. Continue depois de resolver os conflitos restantes. A sessão registada pode ser retomada após reiniciar o Riff se o repositório ainda corresponder à sessão.

Parar próximas camadas conserva as camadas concluídas. Durante um conflito, termine a resolução atual e continue uma vez para parar depois dessa camada. Isto não desfaz o stack inteiro. Se outro processo alterou o repositório ou uma etapa interrompida não puder ser confirmada, verifique o estado e as referências de recuperação conservadas antes de prosseguir.

Publicar pull requests encadeados

  1. Abra a área de publicação de Stacks e selecione o remoto e uma ligação compatível com o serviço. Cada camada precisa de ter commits, estar baseada no pai atual e permitir um push normal. A base remota precisa de corresponder à base revista.
  2. Carregue a pré-visualização da publicação. Verifique origem, destino, commit, título e descrição de cada ramo. O primeiro pull request aponta para a base; cada um dos seguintes aponta para a camada anterior.
  3. Confirme a publicação. O Riff envia as revisões verificadas e cria os pedidos por ordem. Um pull request existente compatível é reutilizado; uma consulta incompleta ao serviço não comprova a ausência de um pedido.
  4. Leia o resultado de cada camada e abra as ligações do serviço para continuar a revisão.

A ligação selecionada fornece as permissões da API do serviço. Operações Git por HTTPS usam as credenciais selecionadas; SSH mantém a autenticação SSH configurada. O fluxo não faz merge dos pedidos, não elimina ramos, não atualiza submódulos e não força o envio de histórico divergente.

Retomar uma publicação parcial

O progresso é registado por camada. Pausar interrompe os passos seguintes e mantém os ramos e pedidos já publicados. Retome depois de corrigir uma recusa confirmada de ligação ou permissão; o Riff verifica novamente o repositório, a identidade e o estado remoto.

Um pedido pode ter resultado incerto se o serviço o recebeu, mas a resposta se perdeu. O Riff consulta o serviço antes de continuar e não repete automaticamente a criação apenas porque o pedido não apareceu na consulta. Verifique o serviço e o estado apresentado; uma sessão incerta não pode ser descartada pelo fluxo normal. A publicação não é uma transação única entre Git e serviço de alojamento.

Consulte conflitos e recuperação para pontos de retorno ou contextos de trabalho para worktrees e contextos da sessão.