Guia de fluxo de trabalho Git para a equipe de desenvolvimento do site LearningLab. O repositório é um monorepo que contém o tema WordPress e o plugin principal.
- Estrutura do Repositório
- Configuração Inicial
- Estrutura de Branches
- Fluxo de Trabalho
- Convenções de Nomenclatura
- Comandos Úteis
- Pull Requests
- Deploy (CI/CD)
- Referência Rápida
Este repositório é um monorepo hospedado em wp-content/. Ele contém dois subprojetos rastreados pelo Git:
wp-content/
├── themes/
│ └── learninglab-site/ ← Tema WordPress
└── plugins/
└── learninglab-core/ ← Plugin principal (CPTs, taxonomias, meta boxes)
Apenas
themes/learninglab-site/eplugins/learninglab-core/são rastreados pelo Git. Outros plugins, temas e uploads são ignorados via.gitignore.
Mac:
brew install gitWindows: Baixe em https://git-scm.com/download/win
Linux (Ubuntu/Debian):
sudo apt-get install gitgit config --global user.name "Seu Nome"
git config --global user.email "seuemail@exemplo.com"
⚠️ O repositório deve ser clonado dentro da pastawp-contentde uma instalação WordPress. Recomendamos usar o LocalWP para desenvolvimento local. Veja o README.md para instruções completas.
# Navegue até wp-content da sua instalação local
cd /caminho/para/wordpress/wp-content
# Clone o repositório (isso vai preencher themes/ e plugins/)
git clone https://github.com/LearningLabUFC/learninglab-wp.git .| Branch | Propósito |
|---|---|
main |
Produção — código estável, deploy automático via GitHub Actions |
develop |
Integração — recebe features prontas antes de ir para main |
feature/* |
Novas funcionalidades no tema |
plugin/* |
Novas funcionalidades no plugin |
fix/* |
Correções de bugs |
hotfix/* |
Correções urgentes diretamente de main |
refactor/* |
Refatorações sem mudança de comportamento |
docs/* |
Apenas documentação |
# Branches locais
git branch
# Todas (locais + remotas)
git branch -agit checkout develop
git pull origin develop# Para mudanças no tema
git checkout -b feature/nome-da-funcionalidade
# Para mudanças no plugin
git checkout -b plugin/nome-da-funcionalidade# Adicione arquivos modificados
git add .
# Faça commit com mensagem descritiva (veja convenções abaixo)
git commit -m "feat: adiciona grid de subprojetos na página inicial"git push origin feature/nome-da-funcionalidade- Base:
develop - Compare: sua branch
- Preencha título, descrição e adicione reviewers
feature/nome-da-funcionalidade → nova feature no tema
plugin/nome-da-funcionalidade → nova feature no plugin
fix/descricao-do-bug → correção de bug
hotfix/descricao-urgente → correção urgente em produção
refactor/componente-refatorado → refatoração
docs/nome-do-documento → documentação
| Prefixo | Quando usar | Exemplo |
|---|---|---|
feat: |
Nova funcionalidade | feat: adiciona filtro de artigos por ano |
fix: |
Correção de bug | fix: corrige layout da grid de membros no mobile |
refactor: |
Refatoração | refactor: divide meta-boxes em arquivos separados |
style: |
Formatação, CSS (sem lógica) | style: ajusta espaçamento da seção hero |
docs: |
Documentação | docs: atualiza README com passos de instalação |
chore: |
Tarefas de config/build | chore: atualiza dependências do Composer |
ci: |
Pipeline CI/CD | ci: adiciona job de deploy do plugin |
Regras:
- Use o imperativo presente: "adiciona", não "adicionado"
- Sem ponto final no título
- Máximo 72 caracteres no título
- Use o corpo do commit para explicar o porquê, não o o quê
# Ver status dos arquivos
git status
# Ver histórico resumido
git log --oneline
# Ver histórico com gráfico de branches
git log --graph --oneline --all
# Desfazer alterações não commitadas em um arquivo
git restore nome-do-arquivo
# Desfazer git add (tirar do stage)
git restore --staged nome-do-arquivo
# Desfazer último commit (mantendo as alterações)
git reset --soft HEAD~1
# Atualizar branch com develop (sem merge commit)
git rebase develop
# Buscar atualizações remotas sem aplicar
git fetch --allgit status # identifica arquivos com conflito
# Edite os arquivos conflitantes
git add . # marca como resolvidos
git commit # finaliza o merge/rebase- Acesse o repositório em https://github.com/LearningLabUFC/learninglab-wp
- Clique em Pull Requests → New Pull Request
- Configure:
- base:
develop - compare: sua branch
- base:
- Preencha:
- Título: mensagem clara e curta
- Descrição: o que foi feito, como testar, screenshots se aplicável
- Adicione reviewers (colegas da equipe)
- Clique em Create Pull Request
- Acesse o PR no GitHub
- Vá em Files changed para ver as alterações
- Clique no
+ao lado de uma linha para comentar - Em Review changes, escolha: Approve, Comment ou Request changes
O deploy é feito automaticamente via GitHub Actions ao fazer push na branch main.
O pipeline .github/workflows/deploy.yml possui dois jobs independentes:
| Job | O que faz |
|---|---|
deploy-tema |
Envia themes/learninglab-site/ para o servidor via FTPS |
deploy-plugin |
Envia plugins/learninglab-core/ para o servidor via FTPS |
| Secret | Descrição |
|---|---|
FTP_SERVER |
Endereço do servidor FTP de produção |
FTP_USERNAME |
Usuário FTP |
FTP_PASSWORD |
Senha FTP |
⚠️ Nunca faça push direto emmain. Sempre passe pordevelope abra um PR.
git checkout develop && git pull # 1. Atualiza develop
git checkout -b feature/minha-feature # 2. Cria branch
# ... desenvolve ...
git add . && git commit -m "feat: ..." # 3. Commita
git push origin feature/minha-feature # 4. Envia para o remoto
# 5. Abre Pull Request no GitHub para develop| Tipo | Formato | Exemplo |
|---|---|---|
| Feature (tema) | feature/nome |
feature/pagina-contato |
| Feature (plugin) | plugin/nome |
plugin/cpt-eventos |
| Correção | fix/nome |
fix/menu-mobile |
| Urgente | hotfix/nome |
hotfix/falha-login |
| Refatoração | refactor/nome |
refactor/css-variaveis |
Dúvidas? Fale com o coordenador do projeto ou abra uma issue.