Skip to main content
Por padrão, seu diretório local lê o rascunho do projeto: as mesmas linhas que o Studio edita, vivas e mutáveis. Com branches você pode trabalhar contra uma versão publicada, testá-la em um canal separado e levar o resultado para produção quando estiver pronto — sem que ninguém veja o trabalho pela metade. Uma branch guarda commits. Um commit é uma foto imutável de todos os workflows do projeto, e é o que um canal serve aos seus usuários.
Esta página assume que você já vinculou o diretório com jelou link e baixou os workflows com jelou pull. Se ainda não fez isso, comece por Projetos e canais.

As duas origens

Seu diretório lê de um único lugar por vez, e jelou status diz qual na primeira linha. O rascunho é a origem padrão e é o que o resto da documentação do CLI descreve. Tudo abaixo é o que muda quando você trabalha em uma branch.

Mudar de origem

jelou checkout <branch> reescreve seus arquivos com o que essa branch serve. Por isso ele recusa quando você tem edições não publicadas: publique-as antes ou descarte-as com jelou pull --accept-server. jelou checkout -b <nome> é a exceção e não toca em nenhum arquivo. Cria a branch a partir do commit que você está lendo e leva junto seu trabalho em andamento, então é a forma de dizer “isto que tenho pela metade vai virar uma branch”.
draft é um nome reservado, para que jelou checkout draft não seja ambíguo. Você não pode criar uma branch com esse nome.

Publicar em uma branch

Estando em uma branch, jelou push muda de significado: em vez de escrever o rascunho, ele publica um commit e move a branch para ele.
Três coisas que vale saber:
  • O rascunho não é tocado. Nada do que você publica em uma branch aparece no Studio até promover para a branch que o Studio lê.
  • Só o que mudou é enviado. Os workflows e canais que você não tocou mantêm a versão que a branch já servia, então publicar um arquivo produz um commit completo do mesmo jeito.
  • O nome do commit é obrigatório. Use-o para saber o que ele contém quando aparecer no histórico.
jelou push recusa se a branch avançou desde o seu último pull. Outra pessoa publicou nesse meio-tempo e seu commit seria construído sobre um trabalho que você não viu. Rode jelou pull, revise e tente de novo.

Conversas em andamento

Publicar move as conversas que estão pela metade para a versão nova no turno seguinte. Se preferir que terminem na versão com que começaram, publique com --keep-pinned.
Vale apenas ao publicar em master, porque o ajuste é do projeto inteiro e não de uma branch específica.

Levar o trabalho para outra branch

jelou promote faz outra branch servir o commit em que você está. A promoção aparece no histórico da branch de destino com seu próprio identificador, e seu diretório não muda: você continua na sua branch, no seu commit.
O commit do destino recebe um identificador diferente do de origem. É uma cópia, não o mesmo commit apontado de dois lados, e é por isso que fica registrado no histórico das duas branches.
Ele recusa quando você tem trabalho local que o commit não contém — você estaria promovendo algo diferente do que vê na tela. Publique antes, ou use --allow-dirty se realmente quiser promover o que foi publicado e deixar suas edições onde estão.

Qual branch cada canal executa

Isso é independente do que seu diretório lê. Um canal pode estar servindo master enquanto você trabalha em dev.
A coluna Branch da listagem mostra o que cada canal executa. Em cinza significa que nunca foi definido, então segue master. set-branch vale imediatamente para conversas novas. Recusa se a branch ainda não tem nada publicado.
Aponte um canal de testes para a sua branch e deixe os de produção em master. Assim você testa com mensagens reais sem que nenhum usuário veja a mudança.

Um ciclo completo

1

Crie a branch e edite

A branch sai do commit que você está lendo e leva junto seu trabalho em andamento.
2

Publique o primeiro commit

O rascunho não é tocado: nada disso aparece no Studio ainda.
3

Teste em um canal

Mande uma mensagem para o canal e verifique o comportamento com mensagens reais. Repita os passos anteriores até ficar como você quer.
4

Promova para produção

Agora master serve o mesmo commit que você testou.
5

Devolva o canal de testes

Assim ele volta a seguir produção e fica livre para a próxima branch.

Uma branch sem nada publicado

Um projeto novo nasce com master vazia, e criar uma branch a partir dali é perfeitamente válido. Seu diretório fica em uma branch sem commits — jelou status chama isso de nothing published yet — e o primeiro jelou push escreve o commit inicial dela. Ler uma branch vazia não é um erro. Pedir uma branch que não existe é outra coisa, e essa sim falha.

O que precisa do rascunho

Estes comandos escrevem o rascunho, então recusam enquanto você lê uma branch. Volte com jelou checkout draft para usá-los. Depois de um jelou push em uma branch não há mais nada a executar: o commit existe e a branch já aponta para ele. O contrário também vale: jelou promote precisa estar em uma branch, porque o rascunho não tem nenhum commit para promover.

Workflows em TypeScript

Se você adotou um workflow para TypeScript com jelou workflow adopt, esse arquivo é a fonte e o CLI nunca escreve JSON por cima, nem ao trocar de branch. Quando o .ts difere do que a branch serve, jelou pull avisa e jelou status o marca como modificado. A partir daí você decide:
  • Publicar o seujelou push, que o envia como um commit novo.
  • Ficar com o da branch — apague o .ts e rode jelou pull de novo.