# 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
