Índice da documentação

// Documentação do Singularity

Resolver um conflito Git: à mão ou com um ticket de IA

Quando o Git recusa um merge, o Singularity não escreve nada: mostra os ficheiros em conflito e deixa-te escolher entre o editor de três painéis e um ticket de resolução confiado a um agente num worktree dedicado.

O diálogo «Merge conflict»

Pode surgir um conflito ao fazer merge de um ramo a partir do menu do grafo, ao integrar o worktree de um ticket com Merge into main…, ou durante um pull ou um rebase. O Singularity mostra então o diálogo Merge conflict: os ramos em causa, a lista dos ficheiros em conflito e a garantia de que não foi feito nenhum merge nem nenhum push.

Três opções: Cancel, Merge manually ou Create a resolution ticket. Um merge ou um rebase já iniciado também pode ser abortado para voltar ao estado anterior.

Diálogo Merge conflict do Singularity para um worktree integrado em main, com o ficheiro em conflito e o botão Create a resolution ticket
Nada foi integrado: escolhe resolver tu mesmo ou confiar o conflito a um ticket.

Resolver à mão: o editor de três painéis

Merge manually abre o separador Resolve conflicts. Para cada ficheiro, o painel Current branch e o painel Incoming source apresentam as duas versões; assinala Keep current block, Take incoming block ou ambos, bloco a bloco ou linha a linha. O painel Result mostra o ficheiro final em tempo real.

Nada é escrito antes da confirmação: Resolve files aplica as tuas escolhas e conclui o merge, Create a ticket instead muda para a resolução por um agente e Cancel abandona.

Editor de resolução de conflitos do Singularity com os painéis Current branch, Incoming source e Result
Escolhe cada bloco; o resultado atualiza-se antes de qualquer escrita.

Confiar o conflito a um agente

Create a resolution ticket abre o diálogo de criação, pré-preenchido: o ramo a integrar, o ramo de destino, o motivo da recusa do Git e a lista dos ficheiros em conflito. Escolhe o agente, o modelo e o nível de raciocínio e cria o ticket. É criado com prioridade alta.

O agente trabalha num worktree dedicado: resolve o conflito, executa as verificações do projeto e conclui o merge. Revês o resultado na revisão antes da integração, como em qualquer outro ticket.

Diálogo de criação de um ticket de resolução pré-preenchido com o merge do worktree em main e os ficheiros em conflito
O ticket descreve o merge recusado e os ficheiros a resolver.

Acompanhar a resolução no board

O ticket de resolução entra em Todo no Mission Control, com a sua prioridade alta. Na vista Git do Navigator, a secção Worktrees do projeto lista os worktrees por integrar; expande um para encontrar Merge into main…, Graph e Explore. Consulta explorar o worktree de um ticket.

Mission Control com o ticket Merge worktree into main em Todo e a lista dos worktrees por integrar no Navigator
O ticket de resolução espera em Todo; os worktrees continuam acessíveis no Navigator.

Perguntas frequentes

Um merge em conflito altera os meus ramos?

Não. O diálogo indica que não foi feito nenhum merge nem nenhum push: os dois ramos ficam na sua posição inicial enquanto não confirmares uma resolução.

O que recebe o agente num ticket de resolução?

O ticket é pré-preenchido com o ramo de origem, o ramo de destino e a lista dos ficheiros em conflito. É criado com prioridade alta e o agente resolve o conflito num worktree dedicado, que revês antes da integração.