Usando GIT para controlar una o todas las carpetas de tu alojamiento vía FTP -- Core-Admin


#1

1. Introducción

A continuación te explicamos cómo usar GIT para crear un repositorio local donde podrás almacenar tu web o parte de tu web de manera que los cambios que tengas y que vayas haciendo los puedas subir por FTP a tu alojamiento usando directamente GIT.

Esta forma de trabajar te proporciona los siguientes beneficios:

  • Reinicio rápido: si borras toda o parte de tu web o quieres “reiniciarla”, simplemente puedes limpiar todo el FTP y subir la última copia desde tu git

  • Te permite controlar con GIT localmente todo tu desarrollo, y cuando estés listo, subes los cambios con GIT por FTP.

  • Usar este método te asegura subir sólo lo que se ha cambiado o es nuevo.

2. Preparación de la solución

  1. Crear una cuenta FTP dentro de un alojamiento usando tu panel de Core-Admin. Mira el siguiente artículo:

    Cómo crear usuario FTP para alojamientos web con Core-Admin

  2. Ahora asegúrate de tener las herramientas necesarias. En Debian/Ubuntu tendrás que instalar los paquetes git y git-ftp:

    >> apt-get install git git-ftp
  1. Si ya tienes el código de la web o de la carpeta que quieras “controlar” con GIT, descárgalo en una carpeta local. En caso contrario, simplemente crea dicha carpeta:
    >> mkdir -p trabajo/codigo-de-la-web
    >> cd trabajo/codigo-de-la-web
  1. Ahora initializa la carpeta local para que sea un repositorio GIT:

  2. Ahora asegúrate de tener las herramientas necesarias. En Debian/Ubuntu tendrás que instalar los paquetes git y git-ftp:

    >> cd trabajo/codigo-de-la-web
    >> git init
    >> git add .
    >> git commit -m "Initial commit" 
    # Nota, si la carpeta está vacía porque estás arrancando, no subirá nada: 
    # es normal
  1. Ahora configura las rutas y credenciales de acceso a tu FTP:
    >> git config git-ftp.url "ftp://<direccion-ip-del-servidor-ftp>:21/<carpeta-opcional-o-dejar-vacio-para-cubrir-todo-html>;"
    >> git config git-ftp.user "<usuario-ftp>"
    >> git config git-ftp.password "<password-ftp>"
    >> git config git-ftp.syncroot .
  1. Ahora, si la carpeta remota FTP tiene todos los ficheros y localmente no tienes nada, usa lo siguiente para descargar en local todo lo que tienes subido:
    >> git ftp catchup
  1. Por el contrario, si la carpeta local tiene ya todo los ficheros que hay en remoto o tanto local como remoto están vacíos (es decir, tienes el mismo estado en ambos lados: local y servidor FTP), entonces ejecuta:
    >> git ftp init

Llegados a este punto ya tienes tu repositorio preparado. Sigue leyendo para los siguientes pasos.

3. Subiendo cambios por FTP desde tu GIT

  1. Ahora usa GIT para añadir, borrar y hacer commits de los ficheros que vaya teniendo tu web. Por ejemplo:
    >> git add index.html news.html doc.html handler.php
    >> git commit -m "Adding new files"
  1. Ahora sube los cambios por FTP con:
   >> git ftp push

4. Subiendo todo desde cero

¿Qué pasa si quieres subir la copia a un nuevo alojamiento o quieres borrar el contenido del alojamiento y subir la copia que tienes el GIT?

En dicho caso, simplemente ejecuta para subir tu copia local GIT a tu servidor FTP:

   >> git ftp init
   2 files to sync:
   [1 of 2] Buffered for upload 'index.txt'.
   [2 of 2] Buffered for upload 'new-file.txt'.
   Uploading ...
   Last deployment changed from  to fc69f4be42f8f7bdd8b7bef2eab7b7c813e09b87.

5. Integración para trabajo en grupo

El tutorial se centra en cómo conectar un repositorio git con una carpeta FTP remota para hacer subidas de código.

De ahí que cree un repositorio local simplemente para tener una carpeta git con la que trabajar.

Para trabajar en grupo, simplemente usar un servicio de GIT compartido como por ejemplo github:

Una vez os déis de alta, cada uno de vosotros os descargáis una copia local (conectada con un repo centralizado en github.com):

>> git clone url-github

Una vez descargada, podéis trabajar con ella, hacer modificaciones, hacer “adds”, “commits”, y luego, una vez que queráis subir por FTP el contenido a la web, seguís las indicaciones descritas anteriormente:

image

Es decir, cada usuario usa GIT para descargase cambios de otros usuarios, y subir cambios al repo central para que el resto de usuarios pueda descargarlos, etc.

Una vez que el proyecto llega a un punto que puede publicarse, cualquiera de vosotros, se descarga la última versión publicada en git (por si no lo tiene) y a continuación hace un paso a producción subiendo por FTP su copia local al alojamiento.