Usando Git para manejar un sitio web

Subir por FTP es antiguo y arriesgado. Esta simple guia de git describe como configurar tu server para poder hacer cambios al tiempo con un simple “git push origin”.

En tu maquina local:

Vamos a suponer que creamos un nuevo sitio con un único archivo llamado “index.html”.

$ mkdir sitio; cd sitio
$ git init
Initialized empty Git repository in /home/user/sitio/.git
$ touch index.html
$ git add index.html
$ git commit -m “mi primer commit”

La idea de la carpeta sitio es que vaya toooodo tu proyecto (templates, backend code, frontend code). Lo ideal es un repositorio git por server, es decir si tenemos otro server para servir contenido estático tendríamos que crear otro repositorio.

En tu server remoto:

Asumo que tenemos un server con acceso SSH
Idealmente que hayamos configurado las cosas para que podamos entrar sin ingresar un password. 
Creamos un repositorio espejo al que tenemos en nuestra maquina local.

$ mkdir sitio.git; cd sitio.git
$ git init –bare

Entonces definimos (y habilitamos) un post-receive en la carpeta hooks.

$ nano hooks/post-receive
#!/bin/sh
GIT_WORK_TREE=/home/user/webapps/ejemplo.com git checkout -f
$ chmod +x hooks/post-receive

Volvemos a nuestra maquina

De vuelta en nuestra maquina definimos un nombre para el espejo remoto, y luego lo reflejamos allí creando una nueva rama “maestra”.

$ git remote add origin ssh://server.ejemplo.com/home/user/gitapps/sitio.git
$ git push origin +master:refs/heads/master

Sobre el servidor /home/user/webapps/ejemplo.com deberíamos tener una copiar de nuestro index.html

A la hora de actualizar:

solo corre el comando:

$ git push origin

Esto transferirá cuaquier nuevo commit a nuestro server.