O que ele detecta
O TYBA olha marcadores no git-dir daquela árvore, nesta ordem:
Nenhum deles, nenhuma faixa.
Ao lado do título vêm os dois lados:
main ← feature. O ours é a sua branch (durante um rebase, o HEAD está solto, então ele lê o head-name que a própria operação deixou). O theirs é o outro lado — nome quando o git sabe dizer, SHA curto quando não sabe.
Não importa quem começou o merge. Você rodando
git merge no terminal da sessão, ou o agente fazendo isso sozinho: a fonte é o estado real do git, e a faixa reflete os dois igual.A lista de arquivos
Cada arquivo em conflito é uma linha, com o códigoXY do git ao lado — UU (os dois mudaram), AA (os dois adicionaram), DD, AU… O código está ali porque ele muda o que “escolher um lado” significa.
Cada linha tem quatro ações:
Escolher um lado é o arquivo inteiro. Não é hunk, não é linha. É a ferramenta certa pra lockfile, snapshot, arquivo gerado — e a ferramenta errada pro
src/ que tem intenção dos dois lados.
Errou o lado? Até a operação ser concluída,
git checkout -m -- <arquivo> no terminal da sessão refaz o conflito e devolve os marcadores. Nada aqui é irreversível antes do commit.Resolver com agente
O botão à direita da faixa manda o problema pro agente. Ele monta um prompt com a operação, os dois lados, a lista de arquivos com seus códigos, e uma instrução explícita de preservar a intenção dos dois lados e remover os marcadores. Aí:- Sessão de agente viva na pasta? O prompt vai pro composer dela.
- Não? O TYBA sobe uma sessão de agente naquela pasta — com sandbox e com o gate de aprovação — e o prompt vai pro composer dela.
O prompt é digitado, não enviado. Ele para no composer, escrito, esperando o seu
↵. É de propósito, e o prompt é de uma linha só pelo mesmo motivo: colagem multilinha vira o chip [Pasted text] no composer, e você não conseguiria ler o que vai mandar antes de mandar.- Merge — o agente resolve, dá
git add, e para. Não conclui o commit do merge. Quem revisa a resolução e commita é você. - Rebase / cherry-pick — o agente resolve e roda
--continueaté a operação terminar, sem criar commits além dos que a própria operação replica.
O último passo é seu
Resolveu tudo? A faixa não some — ela fica âmbar e diz:Conflitos resolvidos — falta concluir a operação (commit / —continue).Isso não é bug: o TYBA não conclui a operação por você. Ele detecta, ele te deixa escolher lado por lado, ele marca resolvido. O
git commit do merge, o git rebase --continue, o git cherry-pick --continue são seus, no terminal da sessão. É o último ato deliberado antes de o histórico mudar de forma.
Quando a operação terminar, o marcador some do git-dir e a faixa some da tela.
O que não existe
- Concluir a operação por botão. Nem commit de merge, nem
--continue. - Abortar por botão.
git merge --aborté no terminal. - Editor de merge de três vias. As opções são: um lado inteiro, ou o seu editor.
- Escolher lado por hunk. É o arquivo todo.
- A faixa enquanto você explora outra branch. Explorando uma branch no picker, o painel esconde a faixa — o que está na tela não é a árvore conflitada. Volte pra sessão e ela reaparece.
Veja também
Branches
Trocar de branch, fetch, e o que o picker recusa.
Classificação de risco
O que o agente faz sozinho enquanto resolve.