# 📥 Paso 1: Clonar CD-System

## 🎯 Objetivo
Traer el código base del CD-System desde el repositorio remoto a tu nuevo proyecto, con protección automática de archivos del sistema.

---

## 📋 Requisitos Previos

- [ ] Repositorio Git vacío o nuevo creado
- [ ] Git configurado en tu máquina
- [ ] Acceso al repositorio `LACOMPANIADIGITAL/cd-system`

---

## 🚀 Método Recomendado: Script Automatizado

### Opción 1: Desde el Repositorio CD-System (Recomendado)

Si tienes acceso al repositorio CD-System, usa el script automatizado:

```bash
# Desde el repositorio CD-System
cd /ruta/al/cd-system
./scripts/clone-to-new-repo.sh https://github.com/LACOMPANIADIGITAL/tu-nuevo-proyecto.git
```

El script:
- ✅ Clona automáticamente la rama `cd-system`
- ✅ Configura los remotes correctamente
- ✅ Verifica que `.gitattributes` esté presente
- ✅ Valida archivos críticos del sistema
- ✅ Proporciona instrucciones para los próximos pasos

### Opción 2: Desde tu Nuevo Repositorio (Manual)

Si prefieres hacerlo manualmente desde tu nuevo repositorio:

```bash
# 1. Agregar remote del cd-system
git remote add cd-system https://github.com/LACOMPANIADIGITAL/cd-system.git

# 2. Traer la rama cd-system
git fetch cd-system cd-system

# 3. Crear y cambiar a la rama cd-system local
git checkout -b cd-system cd-system/cd-system

# 4. Verificar que .gitattributes esté presente (importante para protección)
ls -la .gitattributes

# 5. Remover el remote temporal (opcional, para limpieza)
git remote remove cd-system

# 6. Pushear al repositorio del proyecto
git push -u origin cd-system
```

---

## 📝 Explicación

1. **Agregar remote**: Conecta tu repo con el cd-system
2. **Fetch**: Descarga la rama `cd-system` del repositorio remoto
3. **Checkout**: Crea una rama local `cd-system` basada en la remota
4. **Verificar .gitattributes**: Asegura que los archivos del sistema estén protegidos
5. **Remove remote**: Limpia la conexión temporal (opcional)
6. **Push**: Sube el código a tu repositorio del proyecto

---

## 🔒 Protección de Archivos

El archivo `.gitattributes` protege automáticamente los archivos del sistema durante futuros merges:

- ✅ `config/cd-system.php` - Configuración base
- ✅ `config/site.php` - Configuración del sitio
- ✅ `public/cd-project/assets/*` - Assets de identidad

Estos archivos **NO serán sobrescritos** durante merges desde otros proyectos.

Ver más detalles en: [Protección de Archivos del Sistema](./proteccion-archivos-sistema.md)

---

## ✅ Verificación

Después de ejecutar los comandos, deberías tener:
- ✅ Archivo `composer.json`
- ✅ Archivo `artisan`
- ✅ Carpeta `app/`
- ✅ Carpeta `database/`
- ✅ Carpeta `scripts/`
- ✅ Archivo `.env.example`

---

## ➡️ Siguiente Paso

Una vez clonado, continúa con:
**[Paso 2: Setup del Proyecto](2-setup-nuevo-proyecto.md)**

---

## 💡 Nota

Este proceso trae el código base del CD-System actualizado a la última versión. Todos los módulos, migraciones y seeders estarán incluidos.
