Estaba actualizando uno de mis sistemas cuando recordé lo difícil que fue la primera vez sincronizar una web en un hosting compartido, sin acceso SSH, sin CI/CD y con varios proyectos distintos conviviendo en la misma raíz. Subir archivo por archivo con FTP era lento, propenso a errores y nada profesional. Hasta que encontré una solución práctica: Git-FTP.
¿Por qué Git y no solo FTP?
FTP es como ir lanzando archivos por una ventana esperando que caigan en su sitio. Git, en cambio, te permite llevar un control estructurado, saber qué cambiaste, cuándo y por qué. Pero claro, si tu servidor no tiene acceso Git nativo, eso se complica.
Git-FTP aparece como ese puente entre lo técnico y lo posible: te permite usar Git de forma local para tu control de versiones, y luego subir automáticamente solo los archivos que cambiaron al servidor vía FTP.
¿Es lo más profesional?
No. Si puedes trabajar con SSH, Webhooks, GitHub Actions o entornos con deploy automatizado, eso es más robusto. Puedes clonar el repositorio en el servidor y hacer git pull
directamente. Incluso con integración continua.
Pero este no era ese caso. En este escenario, como en muchos de quienes inician, hay múltiples proyectos distintos corriendo en el mismo hosting compartido, con subcarpetas como /sistema1
, /appQR
, /landingpage
, cada uno con su propia estructura.
El enfoque tradicional de clonar el repositorio en el servidor no sirve cuando todo está fragmentado y no tienes acceso a un entorno completo.
Por eso, Git-FTP fue la solución más sensata y flexible. Te permite mantener las ventajas de Git, sin romper la estructura del hosting.
Paso 1: Instalar Git y Git-FTP
- Instala Git para Windows si no lo tienes: https://git-scm.com/
- Pulsa la tecla Windows, escribe Git Bash, haz clic derecho y elige Ejecutar como administrador.
- Ejecuta los siguientes comandos, uno por uno:
curl -O https://raw.githubusercontent.com/git-ftp/git-ftp/master/git-ftp chmod +x git-ftp mkdir -p /usr/local/bin mv git-ftp /usr/local/bin/ git ftp --version
Deberías ver algo como:
git-ftp version 1.6.0
Paso 2: Crear la cuenta FTP en tu hosting
- Entra a tu panel de control (ej. cPanel o similar).
- Ve a la sección de Cuentas FTP.
- Crea una cuenta nueva apuntando directamente a la carpeta donde está tu proyecto (por ejemplo,
/public_html/tu_poyecto
). - Guarda:
- Servidor FTP
- Usuario
- Contraseña
- Ruta remota
Importante: si tu contraseña tiene caracteres especiales como
!
, puede romper el script o dar errores invisibles. Usa una contraseña segura pero compatible o escápala correctamente.
Paso 3: Configurar Git-FTP en tu carpeta local
- Abre Git Bash y ve a tu carpeta local:
cd /c/tu_carpeta/tu_proyecto
- Ejecuta la configuración:
git config git-ftp.url "ftp://tudominio.com/public_html/tu_proyecto" git config git-ftp.user "tu_usuario" git config git-ftp.password "tu_contraseña"
- Haz un primer
catchup
para que Git-FTP sepa desde qué punto empezar:
git ftp catchup
- Luego, cada vez que quieras subir cambios:
git ftp push
Si ves el error
fatal: Dirty repository: Having uncommitted changes. Exiting...
, asegúrate de hacer commit antes de intentar subir.
Paso 4: Casos de múltiples proyectos
Cuando tienes varios sistemas en subcarpetas distintas dentro del mismo hosting (por ejemplo, /proyecto1
, /proyecto2
, /proyecto3
, etc.), puedes repetir el paso 3 para cada uno, cambiando la ruta y usuario FTP según corresponda.
Este método es ideal para mantener separadas tus cargas sin alterar la estructura global del hosting.
Paso 5: Automatizar con un script de publicación
Dado que Git-FTP funciona mejor en Git Bash, te recomendamos automatizar así:
Opción A: Crear un script .sh
y ejecutarlo con Git Bash
- Crea un archivo
publicar.sh
dentro de tu carpeta de proyecto con este contenido:
#!/bin/bash cd /c/tu_carpeta/tu_proyecto git ftp push read -p "Presione enter para salir..."
- Crea un acceso directo que invoque Git Bash con este archivo. En el destino del acceso directo coloca:
"C:\Program Files\Git\git-bash.exe" --cd="C:/tu_carpeta/tu_proyecto" -c "./publicar.sh"
Opción B: Usar un .bat
que invoque Git Bash
Si prefieres mantener un .bat
, crea uno así:
@echo off "C:\Program Files\Git\git-bash.exe" -c "cd /c/tu_carpeta/tu_proyecto && git ftp push && read -p 'Presione enter para salir...'"
Esto abrirá Git Bash en segundo plano, ejecutará el git ftp push
y esperará tu confirmación para cerrar.
Paciencia, por favor…
A veces parecerá que no hace nada. Otras veces verás Buffered for upload...
y sentirás que subió. Pero no. Solo estaba preparando.
La magia ocurre cuando diga
Uploading...
. Ese es el momento de esperar. Tal vez unos segundos, tal vez muchos minutos.
Pero funciona. Y te ahorra horas de angustia, errores humanos y FTP manual. Esto no solo soluciona un problema técnico, sino que te permite enfocarte en crear, no en subir archivos.
Así que ya sabes:
- Git para organizarte.
- Git-FTP para subir.
- Y un poco de paciencia para no rendirte justo antes de que funcione.
¿Te gustó lo que encontraste aquí?
Si este contenido te fue útil o te inspiró, considera apoyar esta iniciativa.
Aquí sigo, creando recursos que aporten claridad, estructura y propósito en tu camino.