Usando GIT para gestionar una aplicación o web

La idea de este tutorial es plantear un flujo de trabajo en el cual actualizaremos desde local nuestros proyectos alojados en el servidor por medio de GIT.

SSH KEYS

Para evitar que durante las conexiones entre servidor y local el sistema solicite continuamente la contraseña de acceso vamos como primer paso a establecer la autentificación por medio de keys haciendo que la autentificación sea automática.

Primero generamos en local nuestro par de keys (pulsamos enter hasta llegar al final):

ssh-keygen -t rsa

Y procedemos a copiar nuestra key pública a nuestra cuenta por medio del siguiente comando:

cat ~/.ssh/id_rsa.pub | ssh usuario_cpanel@tudominio.com "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"

CONFIGURACION DE INFORMACIÓN PERSONAL

Para que en los commits figure nuestra información (nombre / correo) debemos configurar estos parámetros antes de comenzar a usar GIT

git config --global user.name "Nombre"
git config --global user.email correo@domino.com

CREANDO EL REPOSITORIO EN LOCAL

Si estamos empezando desde 0 podemos hacer lo siguiente:

mkdir web && cd web
git init
echo 'Hola!' > index.html
git add index.html
git commit -m "Pagina principal"

Primero estaríamos creando y accediendo al directorio llamado web, inicializando un repositorio y creando un fichero llamado index.html. Por medio de git add lo añadimos al repositorio y con git commit su correspondiente commit.

Si en cambio ya tenemos un directorio que contiene el proyecto entonces navegamos hacia dicho directorio y hacemos:

git init
git add .
git commit -m "importación inicial"

En la primera lína estamos inicializando el directorio para después añadir todo el contenido de este y realizar un commit general para todos los ficheros añadidos al repositorio.

CREANDO REPOSITORIO REMOTO

Accedemos al servidor vía SSH, si hemos seguido los pasos de la sección SSH Keys no tendremos que indicar nuestra contraseña para acceder correctamente al sistema.

Y creamos e iniciamos el repositorio para nuestro proyecto:

mkdir ~/web.git && cd ~/web.git
git init --bare

Como puedes comprobar hemos creado un directorio fuera de public_html para que la información relativa al control de versiones quede fuera del alcance público y enviaremos los ficheros a public_html (o el directorio deseado) por medio de un hook para dar mayor seguridad.

Para crear este hook debemos:

cd ~/web.git
pico hooks/post-receive

Ahora con el editor abierto introducimos (recuerda hacer las modificaciones pertinentes a la ruta que aparece):

#!/bin/sh
GIT_WORK_TREE=/home/usuario_cpanel/public_html git checkout -f

Por medio de Ctrl+X podemos salir y guardar los cambios en el fichero. Finalmente aplicamos permisos de ejecución.

chmod +x hooks/post-receive

GESTIONANDO LAS ACTUALIZACIONES

Volvemos a nuestro entorno local, primero definiremos el nombre del repositorio remoto, para ello accedemos a nuestro repositorio local y ejecutamos:

git remote add web usuario_cpanel@dominio.com:~/web.git
git push web +master:refs/heads/master

Con el primer comando damos el nombre web al repositorio remoto y actualizamos con nuestros datos almacenados en local. Tras esto podrás ver que el contenido de tu proyecto local ya se encuentra en public_html independiente a la información de git almacenada en web.git fuera del público.

En este caso hemos llamado a nuestro repositorio remoto web de forma que para actualizar los cambios que vayamos realizando en local hacia nuestro servidor haremos:

git push web

Esto enviará nuestros cambios al repositorio remoto donde el hook “post-receive” realizará automáticamente las actualizaciones en nuestro directorio público.

 

fuente : hostsuar

Etiquetas: , ,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: