Blog Reacción Estudio

¡Tu zona de aprendizaje!

Actualizar página web con GIT

No es sabido por muchos, pero podemos utilizar nuestro control de versiones favorito (GIT) como herramienta para actualizar nuestro sitio/proyecto web en cuestión de segundos sin tener que subir los archivos uno por uno a través de un cliente FTP.

Quizás te preguntes, ¿y qué ventajas tiene?. La respuesta, bastantes:

  • Tener un repositorio GIT del proyecto en nuestro propio servidor.
  • Actualizar nuestro sitio o proyecto web a la última versión en cuestión de segundos.
  • Poder volver a una versión estable de nuestro proyecto de forma rápida y segura en caso de haber algún problema.
  • Evitar errores humanos, como los habitualmente ocasionados a la hora de actualizar con FTP.
  • Evita actualizar archivos innecesarios.

Estas son algunas de las principales ventajas de usar GIT como alternativa al FTP, y como puedes observar, no es tontuna.

Si te has decidido a utilizar GIT, vamos a ello:

Antes de nada, deberemos tener un servidor con acceso a la consola y permisos de root.

Primero, debemos instalar GIT en nuestro servidor.

sudo apt-get install git

Una vez lo tengamos instalado, creamos una carpeta donde guardaremos los repositorios en nuestro servidor.

mkdir /var/www/git_rep/proyecto.git

Accedemos al directorio que acabamos de crear.

cd /var/www/git_rep/proyecto.git/

Inicializamos un repositorio tipo bare de GIT.

git init -–bare

Un repositorio bare en GIT es un repositorio central. Es decir, el repositorio donde realizaremos los push de nuestro proyecto.

Ahora, crearemos un hook para que se actualice automáticamente el directorio desde donde sirve nuestro servidor web los archivos del proyecto.

sudo vi /var/www/git_rep/proyecto.git/hooks/post-update

Introducimos el siguiente contenido:

GIT_WORK_TREE=/var/www/proyecto/ git checkout -f

La ruta ‘/var/www/proyecto/’ debemos remplazarla por la ruta donde se encuentre nuestro proyecto.

Guardamos los cambios del archivo.

Ahora le damos los permisos necesarios al hook que hemos creado.

chmod +x /var/www/git_rep/proyecto.git/hooks/post-update

Tras esto, ya tendremos montado el sistema en nuestro servidor, ahora tenemos que configurar un par de cosas en nuestro repositorio local (working copy).

Primero añadimos el repositorio a la configuración local.

git remote add nombre_rep_remoto ssh://usuario@host/var/www/git_rep/proyecto.git

Remplazamos lo siguiente de la url ssh:

  • nombre_rep_remoto: Nombre que tendrá nuestro repositorio remoto en GIT
  • Usuario: Nombre de usuario del sistema
  • Host: Nombre o dirección de nuestro servidor.

Damos permisos de escritura a nuestro directorio git

sudo chmod -R 0777 /var/www/git_rep/proyecto.git

Hacemos push del contenido local al repositorio remoto

git push nombre_rep_remoto +master:refs/heads/master

Muy bien, tras esto, sólo tendremos que realizar algún cambio en local, hacer un commit, y hacer push a nuestro repositorio remoto.

git push nombre_rep_remoto master

Si el push se hace correctamente, veremos como la carpeta donde tenemos los archivos que sirve nuestro servidor web se habrá actualizado automáticamente.

Esto es todo amigos, a partir de ahora cuando hagamos un push a nuestro repositorio remoto, se actualizará también nuestro proyecto web.

Cualquier problema o consulta, no duden en preguntar.

Fuente: http://blog.albertolabs.com/how-to-update-a-website-with-git/