> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Trabalhando com branches

> Crie branches para construir e testar novas ideias com segurança, trabalhe em várias em paralelo e depois faça o merge no seu app quando estiverem prontas.

Branches permitem experimentar novas ideias, funcionalidades ou redesigns sem afetar seu app. Cada branch tem seu próprio chat e sua própria prévia ao vivo, e você pode **trabalhar em várias branches em paralelo**, depois fazer o merge de cada uma no seu app quando estiver satisfeito com o resultado.

<Frame caption="Trabalhe em várias branches ao lado do seu app principal">
  <img src="https://mintcdn.com/base44/eYkTlSr5OX-PNhnp/images/Branches-hero.png?fit=max&auto=format&n=eYkTlSr5OX-PNhnp&q=85&s=1bb140d0e46f3e392dfabc8d8b0cd77a" alt="O menu de branches listando várias branches ao lado de uma prévia do app" width="1200" height="660" data-path="images/Branches-hero.png" />
</Frame>

<CardGroup cols={2}>
  <Card title="Teste um redesign" icon="palette">
    Experimente uma nova aparência para seu app e compare-a com a versão atual. Se mudar de ideia, simplesmente deixe a branch de lado.
  </Card>

  <Card title="Mantenha seu app ao vivo pronto" icon="rocket">
    Quando uma pequena correção surgir no meio do projeto, corrija e publique da main imediatamente. Seu trabalho maior em andamento permanece com segurança em sua branch.
  </Card>

  <Card title="Construa uma funcionalidade para lançamento posterior" icon="calendar">
    Trabalhe adiantado em relação a um lançamento e mantenha a funcionalidade em uma branch até o dia do lançamento.
  </Card>

  <Card title="Trabalhe em paralelo" icon="users">
    Construa em várias branches ao mesmo tempo e trabalhe com sua equipe em diferentes ideias simultaneamente, cada uma em sua própria branch.
  </Card>
</CardGroup>

<Note>
  Branches funcionam junto com uma conexão do [GitHub](/developers/app-code/local-development/github). A Base44 mantém cada branch como uma branch real no seu repositório, e você também pode [construir em uma branch que já está lá](#importing-a-branch-from-github).
</Note>

***

## Como as branches funcionam

A versão principal do seu app é chamada **main**. Quando você cria uma branch, a Base44 inicia uma linha separada de trabalho a partir do estado atual da main.

**Cada branch tem seu próprio:**

* **Chat.** A conversa em uma branch é separada da main, e a IA mantém o contexto do que você construiu antes.
* **Prévia.** Você vê as alterações da branch em uma prévia ao vivo dedicada, enquanto a main permanece intocada.
* **Cópia do design e das páginas do seu app.** Alterações feitas em uma branch permanecem nela até que você faça o merge.
* **Build.** Cada branch faz build por conta própria, então **branches rodam em paralelo** e o trabalho em uma continua enquanto você constrói em outra.
* **Histórico de versões.** Versões salvas em uma branch são listadas nela, e você pode retornar a qualquer uma delas sem tocar na main.

**Compartilhado entre main e cada branch:**

* **Dados do seu app.** Cada branch trabalha com os mesmos registros ao vivo da main, e alterações de registros acontecem na main.
* **Conexões e automação.** Integrações, segredos, automações, fluxos de trabalho e agentes no app.
* **Configurações do app e publicação.** Configurações, domínios e versão publicada do seu app.

<Warning>
  Uma branch visualiza seu app com seus dados reais e ao vivo. Registros que você adiciona, altera ou exclui enquanto visualiza uma branch afetam os mesmos dados que seu app usa em todos os lugares.
</Warning>

<Tip>
  Para experimentar em uma branch sem tocar em seus dados ao vivo, alterne sua prévia para dados de teste enquanto trabalha. Dados de teste estão disponíveis no plano [**Builder**](https://base44.com/pricing) e superior. Saiba mais sobre [testar seu app com dados de teste](/documentation/managing-app-data/testing-your-data).
</Tip>

***

## Criando uma branch

Descreva o que você quer construir, e a Base44 cria a branch, dá um nome a ela com base na sua primeira mensagem e começa a construir imediatamente.

<Tip>
  **Antes de começar:** Se seu app foi construído há um tempo, você pode precisar fazer uma alteração na main antes de conseguir criar sua primeira branch. Se isso se aplicar ao seu app, a Base44 avisa quando você tenta.
</Tip>

**Para criar uma branch:**

1. No editor do app, clique no logo ou nome do seu app no topo do painel do chat.
2. Clique em **Create new branch**.
3. Escolha uma das sugestões ou digite o que quer construir na caixa do chat.
4. Envie a mensagem.

<Frame caption="Criando sua primeira branch pelo menu de branches">
  <img className="mx-auto" style={{ width:"55%" }} alt="O menu de branches aberto sob o nome do app, com o botão Create new branch e o painel Create New Branch abaixo" src="https://mintcdn.com/base44/TFvuxmBp3xPcDe7z/images/creating-new-branch.png?fit=max&auto=format&n=TFvuxmBp3xPcDe7z&q=85&s=9f2cf3f2ac4c3c7c1985676da9bf8c7b" width="660" height="938" data-path="images/creating-new-branch.png" />
</Frame>

<Note>
  Branches sempre começam da main. Se você criar uma branch enquanto está em outra branch, a nova branch ainda começa da main.

  Branches funcionam também no seu celular, tanto em um navegador mobile quanto no app da Base44. O menu de branches aparece no topo do editor assim que seu app tiver uma branch, então crie sua primeira branch em um navegador desktop, depois alterne entre branches, construa e faça merge do seu celular.
</Note>

***

## Importando uma branch do GitHub

Quando seu app está conectado ao GitHub, você pode construir em uma branch que já existe no seu repositório. A Base44 trabalha nela, então suas alterações e as da Base44 vão para a mesma branch no seu repositório.

**Para importar uma branch do GitHub:**

1. No editor do app, clique no logo ou nome do seu app no topo do painel do chat.
2. Clique em **Import from GitHub**.
3. Pesquise a branch que quer, depois selecione-a.
4. Clique em **Import**.

<Note>
  Você importa do repositório ao qual seu app está conectado. Uma branch que você cria na Base44 recebe uma nova branch nesse mesmo repositório.
</Note>

***

## Trabalhando em uma branch

Enquanto você está em uma branch, o nome dela substitui o nome do seu app no topo do painel do chat, e um ícone giratório mostra quando a IA está trabalhando. Você constrói em uma branch da mesma forma que constrói na main: descreva o que quer no chat.

Algumas coisas funcionam de forma diferente em uma branch:

* **Merge to main** substitui o botão **Publish**. Você publica alterações da main após fazer o merge.
* A prévia mostra a versão da branch do seu app.
* A URL da página inclui a branch, então você pode compartilhar um link que abre o editor do app naquela branch.

<Tip>
  **Branches rodam em paralelo.** Envie uma solicitação em uma branch, alterne para outra e continue construindo lá enquanto a primeira termina. Seu app executa até 5 builds ao mesmo tempo, então você e sua equipe podem avançar em várias ideias ao mesmo tempo, cada uma em sua própria branch.

  O menu de branches mostra quais branches estão construindo, para que você possa verificá-las à medida que avança.
</Tip>

### Ações que acontecem na main

Branches cobrem a maior parte do trabalho que você faz no editor do app. Estas ações acontecem na main:

* Publicar seu app
* Criar ou alterar segredos, conectores, automações, fluxos de trabalho e agentes no app
* Editar código diretamente no editor de código
* Alterar as configurações de tema do seu app
* Desfazer uma mensagem no chat, ou editá-la e reenviá-la
* Adicionar uma página do Figma
* Pedir à IA para adicionar, alterar, excluir ou importar registros

<Note>
  Se você pedir uma dessas em uma branch, a Base44 pede que você o faça na main ou faça o merge da branch primeiro.
</Note>

### Entidades em uma branch

Você pode criar entidades e adicionar campos a entidades que já tem em uma branch, e ambos ficam ao vivo na prévia daquela branch imediatamente. Em uma entidade que você cria, você define tudo, incluindo suas [permissões de dados](/Setting-up-your-app/Managing-security-settings). Em uma entidade que já existe, as adições se aplicam, então mantenha um novo campo opcional, porque seus registros existentes ainda não o têm.

Remover uma entidade ou um campo, alterar o tipo de um campo existente ou se é obrigatório, e alterar permissões de dados acontecem na main. Faça a alteração lá e sua branch a pega imediatamente, sem merge ou atualização necessários.

Registros são os dados ao vivo do seu app, compartilhados com a main, então peça à IA alterações em registros na main em vez de em uma branch. Adicionar, alterar ou excluir registros por conta própria enquanto visualiza uma branch funciona como sempre, e altera os mesmos dados que seu app usa em todos os lugares.

### Funções de backend em uma branch

Você pode adicionar e alterar funções de backend em uma branch. A branch recebe sua própria cópia de cada função que você toca, a prévia da branch chama essa cópia, e fazer o merge da branch a implanta na main. Se seu app ainda não pode fazer isso, a Base44 pede que você faça alterações de backend na main.

***

## Usando o histórico de versões em uma branch

Toda versão salva em uma branch é listada no histórico de versões daquela branch, então você pode revisitar como a branch se desenvolveu e retornar a qualquer ponto anterior. Restaurar uma versão altera apenas aquela branch, e a main permanece exatamente como está. Uma branch merged mantém seu histórico de versões legível, e você pode restaurar enquanto uma branch ainda está ativa.

**Para restaurar uma versão anterior de uma branch:**

1. Na branch, clique no ícone **Version history** no topo do painel do chat.
2. Clique em uma versão na lista para carregá-la na prévia.
3. Clique no ícone **More options** <Icon icon="ellipsis" /> ao lado dessa versão.
4. Clique em **Revert to this version**.

Restaurar traz as páginas, design, entidades e funções de backend da branch de volta àquela versão, e o chat da branch retorna à mensagem que a criou. Seus registros são compartilhados com a main, então permanecem como estão. Suas versões posteriores permanecem na lista, então você pode avançar novamente sempre que quiser.

<Note>
  **Publish this version** só está disponível na main, porque publicar sempre entrega seu app main. Para lançar trabalho de uma branch, faça o merge dela na main e publique de lá.
</Note>

<Tip>
  Restaure uma versão depois que a branch tiver concluído o build e qualquer atualização da main estiver completa. Se a branch estiver ocupada, a Base44 avisa, e você pode restaurar assim que terminar.
</Tip>

***

## Alternando entre branches

Você pode alternar entre main e suas branches a qualquer momento, e cada branch mantém suas alterações até que você faça o merge. Em uma branch, você também pode clicar no **X** ao lado de **Merge to main** para sair de volta para a main.

**Para alternar para outra branch ou de volta para a main:**

1. Clique no nome da branch no topo do painel do chat.
2. Selecione uma branch da lista, ou selecione **Main chat** para retornar à main.

<Frame caption="Alternando entre main e suas branches">
  <img className="mx-auto" style={{ width:"55%" }} alt="O menu de branches aberto em uma branch, mostrando Main chat acima da lista de branches" src="https://mintcdn.com/base44/TEODQUOeOLz9wLnr/images/switching-branches.png?fit=max&auto=format&n=TEODQUOeOLz9wLnr&q=85&s=65c7341c40def5c857bf1a5927437e4b" width="692" height="868" data-path="images/switching-branches.png" />
</Frame>

Cada branch na lista mostra seu status atual:

| Status      | Significado                                                                       |
| ----------- | --------------------------------------------------------------------------------- |
| **Active**  | A branch está aberta e pronta para construir.                                     |
| **Working** | A IA está construindo nesta branch agora.                                         |
| **Merging** | A branch está sendo mesclada na main.                                             |
| **Merged**  | A branch foi mesclada na main. Seu chat permanece legível, mas é somente leitura. |

<Note>
  Você pode alternar branches enquanto a IA está construindo, e ela continua trabalhando na branch que você deixou. Salve ou descarte quaisquer edições na main primeiro.
</Note>

***

## Atualizando uma branch com alterações da main

Se a main mudar enquanto sua branch estiver aberta, um banner aparece acima da caixa de chat na branch. Ele informa quanto mudou na main e se algo se sobrepõe à sua branch.

Quando você atualiza, a IA combina as alterações da main com sua branch. Se algumas alterações se sobrepõem, a IA as resolve para você. Se as duas versões realmente conflitam, a IA faz uma pergunta no chat para que você decida o que manter.

**Para trazer as alterações mais recentes da main para sua branch:**

1. Na branch, encontre o banner de atualização acima da caixa de chat.
2. Clique em **Update branch**.

Você também pode iniciar uma atualização pelo menu de branches. Clique no ícone **More actions** <Icon icon="ellipsis" /> ao lado de uma branch, depois clique em **Update from main**.

Peça ao chat da IA para trazer as alterações mais recentes da main e ele coloca um card no chat com um botão **Update branch** para você clicar.

<Note>
  Se uma atualização encontrar um problema, a Base44 a reverte e o trabalho da sua branch permanece inalterado.
</Note>

***

## Fazendo merge de uma branch na main

O merge traz tudo que você construiu na branch para a main. Suas alterações chegam aos usuários do seu app somente quando você publica da main, então você decide exatamente o que sai e quando.

Após o merge, um resumo das alterações da branch aparece no chat da main, e a branch permanece na sua lista de branches como merged, então você ainda pode ler seu histórico de chat, mas ela se torna somente leitura.

**Para fazer merge de uma branch:**

1. Na branch, clique em **Merge to main** no topo do editor.
2. Revise a confirmação e clique em **Merge to main**.

Você também pode fazer merge pelo menu de branches. Clique no ícone **More actions** <Icon icon="ellipsis" /> ao lado de uma branch, depois clique em **Merge to main**.

Peça ao chat da IA para fazer merge da branch e ele coloca um card no chat com um botão **Merge to main** para você clicar.

<Note>
  Se a branch conflita com alterações feitas na main, a Base44 pede para você atualizá-la primeiro. [Atualize a branch da main](#updating-a-branch-with-changes-from-main) para resolver os conflitos e faça o merge novamente.
</Note>

***

## Excluindo uma branch

Exclua uma branch quando terminar com uma ideia e quiser limpá-la da sua lista. Seu app e suas outras branches permanecem como estão.

<Warning>
  Excluir uma branch é permanente. Remove a branch e seu chat, e isso não pode ser desfeito. Para manter o trabalho, faça o merge da branch na main primeiro.
</Warning>

**Para excluir uma branch:**

1. Clique no nome da branch no topo do painel do chat.
2. Clique no ícone **More actions** <Icon icon="ellipsis" /> ao lado da branch que quer excluir.
3. Clique em **Delete**.
4. Revise a confirmação e clique em **Delete branch**.

<Frame caption="Abrindo o menu More actions em uma branch">
  <img className="mx-auto" style={{ width:"58%" }} alt="O menu de branches com o menu More actions aberto em uma branch, mostrando Merge to main, Update from main e Delete" src="https://mintcdn.com/base44/aGvTNx4rVci6s1Hq/images/more-actions-branches.png?fit=max&auto=format&n=aGvTNx4rVci6s1Hq&q=85&s=5992199dcd0afd42dde4af7fc1b67f67" width="744" height="978" data-path="images/more-actions-branches.png" />
</Frame>

<Note>
  Você pode excluir uma branch depois que a IA terminar de construir nela e qualquer atualização da main estiver completa. Branches merged permanecem em sua lista como um registro do trabalho.
</Note>

***

## Perguntas frequentes

Clique em uma pergunta abaixo para saber mais sobre branches.

<AccordionGroup>
  <Accordion title="Posso publicar meu app de uma branch?">
    Não. Publicar sempre acontece da main. Em uma branch, o botão **Publish** é substituído por **Merge to main**. Faça o merge da branch primeiro, depois publique da main.
  </Accordion>

  <Accordion title="Uma branch tem seus próprios dados?">
    Não. Todas as branches compartilham os mesmos dados ao vivo da main. Se você adicionar, alterar ou excluir registros enquanto visualiza uma branch, essas alterações afetam os dados reais do seu app em todos os lugares. Para manter experimentos separados dos seus dados ao vivo, alterne sua prévia para [dados de teste](/documentation/managing-app-data/testing-your-data) enquanto trabalha na branch.
  </Accordion>

  <Accordion title="Quantas branches posso ter?">
    Não há limite definido. Você pode manter quantas branches quiser ativas ao mesmo tempo, e fazer o merge de cada uma sempre que estiver pronta.
  </Accordion>

  <Accordion title="O que acontece com uma branch depois que eu faço o merge?">
    A branch permanece na sua lista de branches, marcada como merged, e se torna somente leitura. Você pode abri-la e ler seu histórico de chat a qualquer momento, o que mantém um registro de como o trabalho aconteceu. Para continuar de onde parou, crie uma nova branch da main.
  </Accordion>

  <Accordion title="Minha equipe e eu podemos trabalhar em branches diferentes ao mesmo tempo?">
    Sim. Cada colaborador pode abrir uma branch diferente e conversar lá, e cada branch faz build por conta própria. Seu app executa até 5 builds ao mesmo tempo, e qualquer coisa além disso espera na fila e roda em ordem.

    Criar uma branch precisa de acesso de edição ao app, então membros com a função **Viewer** podem abrir branches e ler seus chats. Saiba mais sobre [funções no seu workspace](/Account-and-billing/Managing-your-workspaces).
  </Accordion>

  <Accordion title="Branches usam créditos extras?">
    Não. Construir em uma branch usa créditos da mesma forma que construir na main, do mesmo saldo de créditos.
  </Accordion>

  <Accordion title="Posso usar branches em um app conectado ao GitHub?">
    Sim. Crie uma branch da mesma forma que faria em qualquer app, e a Base44 adiciona a branch correspondente ao seu repositório [GitHub](/developers/app-code/local-development/github) conectado. Para construir em uma branch que já está no seu repositório, use [Import from GitHub](#importing-a-branch-from-github).
  </Accordion>

  <Accordion title="Posso conectar meu app ao GitHub enquanto tenho branches?">
    Sim. A Base44 adiciona suas branches abertas ao repositório quando você conecta, então não há nada para fazer merge ou excluir primeiro. Se uma branch estiver construindo naquele momento, aguarde-a terminar e depois conecte.
  </Accordion>

  <Accordion title="Posso usar branches em um app que migrei para a Base44?">
    Apps que você trouxe com [Import existing project](/Getting-Started/migrating-an-existing-app) continuam funcionando com as branches git do próprio repositório, então o menu de branches não faz parte do editor do app para eles.
  </Accordion>
</AccordionGroup>

<Note>Esta página foi traduzida usando IA. Para as informações mais precisas e atualizadas, consulte a [versão em inglês](/). </Note>
