# Guia de Migração: GitHub para Forgejo

Este guia documenta o processo padrão para migrar seus projetos existentes e novos para o repositório Forgejo da Rede5.

## 1. Autenticação (Passo Único)

Como o servidor é privado, a melhor forma de autenticar é gerando um **Access Token**.

1.  Acesse o Forgejo: [https://forgejo-gru.rede5.com.br/](https://forgejo-gru.rede5.com.br/)
2.  Clique no seu Avatar (topo direito) -> **Configurações**.
3.  Vá em **Aplicações** (Applications).
4.  Gere um novo token (ex: "migration-token") e **copie-o**.

> 💡 **Dica:** O token substitui sua senha nas operações de Git.

---

## 2. Migrando um Projeto Existente (GitHub -> Forgejo)

Se você já tem o projeto no computador (clonado do GitHub):

### Opção A: Manter os dois repositórios (GitHub e Forgejo)
Ideal para transição suave. Você mantém o `origin` (GitHub) e adiciona um novo (Forgejo).

```powershell
# 1. Entre na pasta do projeto
cd c:\caminho\do\projeto

# 2. Adicione o novo remote (usando o token para não pedir senha)
# Sintaxe: https://<SEU_TOKEN>@forgejo-gru.rede5.com.br/rede5/<NOME_DO_REPO>.git
git remote add forgero https://<TOKEN>@forgejo-gru.rede5.com.br/rede5/<NOME-DO-REPO>.git

# Exemplo real (substitua <TOKEN>):
# git remote add forgero https://<TOKEN>@forgejo-gru.rede5.com.br/rede5/gohorsejobs.git

# 3. Envie o código
git push forgero main
# (Ou 'master', dependendo de como está sua branch principal)
```

### Opção B: Mudar totalmente para o Forgejo
Se não vai mais usar o GitHub.

```powershell
# 1. Remova o vínculo com o GitHub (opcional, ou apenas renomeie)
git remote remove origin

# 2. Adicione o Forgejo como 'origin' (padrão)
git remote add origin https://<TOKEN>@forgejo-gru.rede5.com.br/rede5/<NOME-DO-REPO>.git

# 3. Envie o código e defina o upstream padrão
git push -u origin main
```

---

## 3. Comandos Padrão do Dia a Dia

Depois de configurado, o fluxo é o mesmo:

| Ação | Comando |
| :--- | :--- |
| **Baixar atualizações** | `git pull forgero main` |
| **Enviar alterações** | `git push forgero main` |
| **Verificar remotes** | `git remote -v` |
| **Criar nova branch** | `git checkout -b nova-feature` |
| **Enviar nova branch** | `git push forgero nova-feature` |

---

## 4. Solução de Problemas Comuns

### Erro: `fatal: Authentication failed`
*   **Causa:** O Git não conseguiu logar.
*   **Solução:** Verifique se o token no comando `git remote add` está correto ou se expirou.
*   **Correção:** Atualize a URL com o token correto:
    ```powershell
    git remote set-url forgero https://<NOVO_TOKEN>@forgejo-gru.rede5.com.br/rede5/<REPO>.git
    ```

### Erro: `remote origin already exists`
*   **Causa:** Você tentou adicionar um remote (`origin`) que já existe.
*   **Solução:** Use outro nome (ex: `forgero`) ou mude a URL do existente.
    ```powershell
    # Adicionar com outro nome
    git remote add forgero <URL>
    
    # OU Alterar o existente
    git remote set-url origin <URL>
    ```

### Erro: `refusing to merge unrelated histories`
*   **Causa:** Você criou o repositório no Forgejo com README/Licença e tentou subir um projeto local que já tinha esses arquivos.
*   **Solução:**
    ```powershell
    git pull forgero main --allow-unrelated-histories
    ```
