Configuración GIT para deploy

Estos son los pasos que sigo para configurar un GIT en el servidor para utilizarlo como repositorio y de paso poner en producción los cambios que subo la rama raíz del proyecto.
Lo primero es crear el repositorio en el servidor, este debe estar fuera de la carpeta web:

git init --bare repositorio.git

Una vez creado podemos acceder al directorio repositorio.git y comprobar que se ha montado correctamente con el comando:

git status

Después creamos un hook para que cada vez que haya un push sobre el repositorio, compruebe la rama desde la que se ha hecho y si es la rama master haga una copia en el directorio donde este alojada la web:

nano hooks/post-receive

Y en este fichero copiamos el siguiente código:


#!/bin/bash
while read oldrev newrev refname
do
branch=`echo $refname | cut -d/ -f3`
echo "**** push de la rama $branch ****"
if [ "master" == "$branch" ]; then
GIT_WORK_TREE=/RUTA/ABSOLUTA/DE/LA/WEB git checkout -f $branch
fi
done

Por último debemos dar permisos de ejecución al nuevo hook y con esto habremos terminado la configuración del servidor:

chmod +x hooks/post-receive

Ahora toca clonar el repositorio en local para poder trabajar con el. Nos posicionamos en la carpeta donde vayamos a desarrollar el proyecto y ejecutamos:

git clone ssh://USUARIO_SSH@SERVIDOR/RUTA_ABSOLUTA_AL_FICHERO_repositorio.git ./

Nos pedirá la contraseña de nuestro usuario de ssh y listo, ya podemos trabajar normalmente.

Comandos extra que pueden ser útiles:

En el caso de querer copiar en el servidor el contenido de una rama concreta a un directorio podemos ejecutar el comando:

git archive RAMA_A_COPIAR | tar x -C /RUTA_DE_DESTINO

Otro caso habitual es trabajar con ramas de test e integración. Para crear las ramas en remoto podemos ejecutar desde local:

git push --set-upstream origin NOMBRE_RAMA

Dejar un comentario?

0 Comentarios.

Deje un comentario


NOTA - Puede usar estosHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.