Git-FTP: Deploy en hosting compartido con repositorio GitHub

La forma realista y simple de mantener tu web actualizado

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

  1. Instala Git para Windows si no lo tienes: https://git-scm.com/
  2. Pulsa la tecla Windows, escribe Git Bash, haz clic derecho y elige Ejecutar como administrador.
  3. 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

  1. Entra a tu panel de control (ej. cPanel o similar).
  2. Ve a la sección de Cuentas FTP.
  3. Crea una cuenta nueva apuntando directamente a la carpeta donde está tu proyecto (por ejemplo, /public_html/tu_poyecto).
  4. 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

  1. Abre Git Bash y ve a tu carpeta local:
cd /c/tu_carpeta/tu_proyecto
  1. 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"
  1. Haz un primer catchup para que Git-FTP sepa desde qué punto empezar:
git ftp catchup
  1. 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

  1. 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..."
  1. 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.


🤓 Nuevos contenidos que podrían interesarte…


💎 ¿Quieres ver contenido potente y bien estructurado?


🙂 Explora otras categorías…

0 0 votos
Article Rating
Suscribirse
Notificarme sobre
guest
0 Comments
Más antiguos
Más recientes Más votados
Comentarios en línea
Ver todos los comentarios
Scroll to Top