> For the complete documentation index, see [llms.txt](https://lunarie.gitbook.io/lunarie-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lunarie.gitbook.io/lunarie-docs/desenvolvimento/03-controle-de-versao.md).

# Controle de Versão

> **Última atualização:** 08/10/2026 Prática atual do Git e do GitHub, conferida nos três repositórios em 08/10/2026.

## Repositórios

| Repositório     | Conteúdo             | Destino                                  |
| --------------- | -------------------- | ---------------------------------------- |
| `lunarie-v-2.0` | App e Edge Functions | Lovable (app) e GitHub Actions (funções) |
| `lunarie-site`  | Landing page         | Lovable                                  |
| `lunarie-docs`  | Esta documentação    | GitBook (Git Sync, GitHub → GitBook)     |

O GitHub é a fonte oficial dos três. Cada repositório tem uma única branch, `main`.

## Branches

Não há branch de desenvolvimento nem de preview. Todo trabalho vai direto para `main`, e a publicação em produção é um passo manual à parte ([Ambientes](/lunarie-docs/arquitetura/03-ambientes.md)). Com mais pessoas ativas no projeto, branches por funcionalidade passam a fazer sentido.

## Commits

Os commits seguem o padrão `tipo(escopo): descrição`, em português, no imperativo ou no presente, curtos e específicos.

| Tipo   | Uso                   | Exemplo                                                                      |
| ------ | --------------------- | ---------------------------------------------------------------------------- |
| `feat` | Funcionalidade nova   | `feat(busca): BrasilAPI como fonte por ISBN entre o Google e a Open Library` |
| `fix`  | Correção              | `fix(kindle): sincroniza o nome do arquivo antes do envio`                   |
| `copy` | Só texto de interface | `copy: revisa textos do dialog de envio ao Kindle`                           |
| `docs` | Documentação          | `docs(banco): revisa Tabelas`                                                |

Evitar mensagens genéricas, como "Alterações diversas".

## Regras

* **O push é sempre da fundadora.** O Claude prepara o commit e entrega o comando, sem enviar ao GitHub.
* **Histórico publicado não é reescrito.** Sem `force push`, `rebase`, `amend` ou `squash` em commits já enviados. O Lovable sincroniza o histórico, e reescrevê-lo pode fazer a pessoa perder o projeto no editor (aviso do `AGENTS.md`).
* **Antes do push no app:** `tsc`, `eslint` e `prettier` passam ([Fluxo de Desenvolvimento](/lunarie-docs/desenvolvimento/01-fluxo-de-desenvolvimento.md)).
* **Documentação acompanha o código.** Mudança relevante atualiza a página correspondente e, se for estrutural, ganha um ADR.
* **Um commit por assunto**, para o histórico explicar o motivo de cada mudança.

## Fluxo de comando

```
git add <arquivos>
git commit -m "tipo(escopo): descrição"
git pull --rebase --autostash
git push
```

O `pull --rebase` só reaplica commits locais ainda não enviados, o que não reescreve histórico publicado.

## Documentos relacionados

* [Fluxo de Desenvolvimento](/lunarie-docs/desenvolvimento/01-fluxo-de-desenvolvimento.md)
* [Decisões Arquiteturais](/lunarie-docs/arquitetura/06-decisoes-arquiteturais.md)
* [Deploy](/lunarie-docs/desenvolvimento/06-deploy.md)
