testes/GIT-AUTO-SYNC.md

180 lines
6.1 KiB
Markdown

# Git Auto-Sync - Documentação
## 📋 Visão Geral
O **Git Auto-Sync** é um sistema de automação que monitora alterações no projeto PlatformSistemas e realiza commits e push automáticos para o repositório Git remoto.
## 🎯 Características
-**Monitoramento em tempo real** de alterações nos arquivos
-**Debounce inteligente** (aguarda 10 segundos após a última alteração)
-**Build automático** antes de cada commit
-**Filtragem inteligente** de arquivos (ignora node_modules, .git, dist, etc.)
-**Mensagens de commit descritivas** com timestamp e contagem de arquivos
-**Interface visual** com cores e feedback claro
## 🚀 Como Usar
### Método 1: Via NPM (Recomendado)
```bash
# Com build automático (padrão)
npm run git:sync
# Sem build automático (mais rápido para desenvolvimento)
npm run git:sync:nobuild
```
### Método 2: Via PowerShell Direto
```powershell
# Com build automático
.\git-auto-sync.ps1
# Sem build automático
$env:BUILD_ENABLED='false'; .\git-auto-sync.ps1
```
## ⚙️ Configurações
Você pode ajustar as configurações editando o arquivo `git-auto-sync.ps1`:
```powershell
# Configurações (linhas 10-12)
$BRANCH_NAME = "frontend_React" # Branch de destino
$DEBOUNCE_SECONDS = 10 # Tempo de espera após última alteração
$BUILD_ENABLED = $true # Executar build antes do commit
```
### Parâmetros Configuráveis
| Parâmetro | Descrição | Valor Padrão |
|-----------|-----------|--------------|
| `BRANCH_NAME` | Branch do Git para push | `frontend_React` |
| `DEBOUNCE_SECONDS` | Segundos de espera após última alteração | `10` |
| `BUILD_ENABLED` | Executar build de produção antes do commit | `true` |
## 📁 Arquivos Ignorados
O script ignora automaticamente as seguintes pastas/arquivos:
- `node_modules/`
- `.git/`
- `dist/`
- `.env`
- `*.log`
- `package-lock.json`
- `.tmp/`
- `.cache/`
- `.vscode/`
- `.idea/`
- `*.swp`
- `*~`
## 🔄 Fluxo de Trabalho
1. **Detecção de Alteração**: O script detecta quando um arquivo é modificado, criado, deletado ou renomeado
2. **Debounce**: Aguarda 10 segundos para garantir que não há mais alterações pendentes
3. **Verificação**: Confirma que há alterações reais para commitar
4. **Build** (opcional): Executa `npm run build` para gerar a versão de produção
5. **Stage**: Adiciona todos os arquivos alterados (`git add .`)
6. **Commit**: Cria um commit com mensagem descritiva
7. **Push**: Envia as alterações para o repositório remoto na branch `frontend_React`
## 📝 Formato das Mensagens de Commit
```
Auto-deploy: 2026-01-13 09:20:45 | 3 arquivo(s) alterado(s) [Build included]
```
- **Timestamp**: Data e hora do commit
- **Contagem**: Número de arquivos alterados
- **Build**: Indica se o build foi incluído
## 🛑 Como Parar
Para interromper o monitoramento, pressione `Ctrl+C` no terminal onde o script está rodando.
## 🔧 Troubleshooting
### Erro: "Execution Policy"
Se você receber um erro sobre política de execução, execute:
```powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
```
### Erro no Build
Se o build falhar, o commit será abortado automaticamente. Verifique os erros no console e corrija-os antes de tentar novamente.
### Push Rejeitado
Se o push for rejeitado (ex: branch desatualizada), você precisará:
1. Parar o script (`Ctrl+C`)
2. Fazer `git pull origin frontend_React`
3. Resolver conflitos (se houver)
4. Reiniciar o script
## 🎨 Interface Visual
O script exibe um banner informativo ao iniciar:
```
╔════════════════════════════════════════════════════════════╗
║ Git Auto-Sync - PlatformSistemas ║
╠════════════════════════════════════════════════════════════╣
║ Branch: frontend_React ║
║ Remote: https://git.itguys.com.br/itguys_dev/Workspace ║
║ Debounce: 10 segundos ║
║ Build automático: Habilitado ║
╠════════════════════════════════════════════════════════════╣
║ Status: Monitorando alterações... ║
║ Pressione Ctrl+C para parar ║
╚════════════════════════════════════════════════════════════╝
```
## 📊 Logs e Feedback
O script fornece feedback visual em tempo real:
- 🔵 **Azul escuro**: Alterações detectadas
- 🟡 **Amarelo**: Processos em andamento
- 🟢 **Verde**: Operações bem-sucedidas
- 🔴 **Vermelho**: Erros
## 🔐 Segurança
- O script **não** commita arquivos sensíveis (`.env`, etc.)
- Arquivos temporários e de cache são automaticamente ignorados
- O `.gitignore` do projeto é respeitado
## 📌 Repositório
- **Remote**: https://git.itguys.com.br/itguys_dev/Workspace
- **Branch**: frontend_React
## 💡 Dicas
1. **Desenvolvimento rápido**: Use `npm run git:sync:nobuild` para commits mais rápidos durante desenvolvimento
2. **Produção**: Use `npm run git:sync` para garantir que o build está sempre atualizado
3. **Múltiplas alterações**: O debounce agrupa alterações feitas em sequência em um único commit
4. **Monitoramento**: Mantenha o terminal visível para acompanhar o status das sincronizações
## 🆘 Suporte
Em caso de problemas:
1. Verifique se o Git está configurado corretamente
2. Confirme que você tem permissões de push na branch `frontend_React`
3. Verifique se não há conflitos pendentes no repositório
4. Revise os logs no console para identificar erros específicos
---
**Última atualização**: 2026-01-13 (Teste Auto-Sync 12:15)
**Versão**: 2.1
**Autor**: Antigravity AI