- Acceso SSH al servidor que desean actualizar con
git push
- Tener una clave pública para no tener que ingresar contraseña cada vez que realizan la acción
Si ya accedes a tu servidor mediante SSH y no ingresas la clave, omití esto y salta la Configuración de Git
- Generar clave en tu equipo local:
ssh-keygen -t rsa
deberás ingresar donde guardar la clave y el passphrase, te recomiendo dejarlo todo por default, osea 3 enter seguidos - Si dejaste todo por default, te habrá generado la clave pública en
/home/{tu_usuario}/.ssh/id_rsa.pub
- Para copiar la clave al servidor tenés dos opciones:
- Utilizando el cmd ssh-copy-id
ssh-copy-id user@server
- De forma manual
cat ~/.ssh/id_rsa.pub | ssh user@server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
- Utilizando el cmd ssh-copy-id
- Aparecerá algo similar a esto, donde tenes que ingresar tu contraseña por única vez y responder yes
The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established.
RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12.
Are you sure you want to continue connecting (yes/no)? yes
- Ya puedes conectarte por SSH sin necesidad de tu contraseña.
- Acceder por SSH a nuestro servidor
- Debemos saber en que ubicación nos pone el servidor al ingresar, si queresmos saber en que ruta estamos, escribimos
pwd
y nos devolverá el path de nuestro usuario, ejemplo:/home/rosarina
- Creamos un carpeta que se encargará de recibir nuestro push
mkdir site.git && cd site.git
- Ejecutamos el cmd
git init --bare
donde le estamos indiciando la carpeta sólo tendrá control de versiones y ningún archivo de origen. - Ejecutamos cmd:
cd hooks
- Creamos un archivo llamado
post-receive
con el comandocat > post-receive
onano post-receive
o con el editor que te guste. Y le guardamos el siguiente contenido:
#!/bin/sh
git --work-tree=/var/www/dominio/public_html --git-dir=/home/rosarina/site.git checkout -f
cd /var/www/dominio/public_html/code
bower update
gulp minify-js
La explicación de eso es:
--work-tree
indica el directorio donde se encuentra alojado el sitio a actualizar--git-dir
indica el directorio que creamos para recibir el push
Opcionales: Luego realiza un cambio de directorio, apuntando al
work-tree
Ejecuta la actualización debower
si es necesario, sino quitar esa linea. Ejecuta la minificación de archivos, en este caso congulp
- Le damos permisos de ejecución al archivo
post-receive
con el cmd:chmod +x post-receive
- Salimos de SSH, aquí finaliza nuestra tarea en servidor
En nuestro equipo local dentro de la carpeta del sitio web, debemos agregar un servidor remoto para realizar el push, entonces escribimos el cmd: git remote add test ssh://user@server{:port}/home/rosarina/site.git
De esta forma le estamos indicando un nuevo servidor para trackear nuestro repositorio. El puerto es opcional, sólo para aquellos servidores que no utilizan el 22 por seguridad.
Y listo! Hemos configurado para realizar:
git push {remote_name} {branch}
👍 Adentro!
by Diego Plenco
Por fin un buen tuto APB :)