Servidor GIT Casero

GIT

Hola de nuevo!

Git es un sistema de control de versiones que ya lleva unos años de moda y casi es obligatorio saber usarlo. Hoy en día contamos con plataformas como GitHub o Bitbucket que nos permiten tener nuestro codigo alojado en la nube de forma fácil y sencilla ¿pero qué sucede si no queremos usar un servicio de terceros para almacenar nuestro repositorio?

La respuesta es montar nuestro propio servidor GIT, yo en mi caso lo tengo montado en mi Raspberry Pi ya que es idónea gracias al bajo consumo eléctrico, podemos dejarla siempre encendida y tener disponible nuestro repositorio. Antes de empezar doy por hecho que teneis conocimientos básicos en Git y la terminal de linux.

El lado oscuro del servidor:

Este tutorial lo voy a realizar en Raspbian, pero los pasos se pueden seguir en cualquier distribución de Linux. Yo personalmente aconsejo alojar nuestro código en servidores Linux, porque nos dan más facilidad a la hora de conectar en remoto, ya que podemos usar SSH.

Lo más recomendado es crear un usuario en nuestro servidor con su carpeta en /home esto nos dará cierta seguridad, ya que al conectar por ssh solo podremos hacer uso de las carpetas en dicho directorio. Voy a crear un usuario "git" pero no es obligatorio usar este nombre.

mimaquina:/home $ sudo adduser git
Añadiendo el usuario `git' ...
Añadiendo el nuevo grupo `git' (1002) ...
Añadiendo el nuevo usuario `git' (1002) con grupo `git' ...
Creando el directorio personal `/home/git' ...
Copiando los ficheros desde `/etc/skel' ...
Introduzca la nueva contraseña de UNIX:
Vuelva a escribir la nueva contraseña de UNIX:
passwd: contraseña actualizada correctamente
Cambiando la información de usuario para git
Introduzca el nuevo valor, o pulse INTRO para usar el valor predeterminado
    Nombre completo []:
    Número de habitación []:
    Teléfono del trabajo []:
    Teléfono de casa []:
    Otro []:
¿Es correcta la información? [S/n] s

La parte más importante instalar GIT:

sudo apt-get install git-core

Según la distro de linux que usemos la instalación varía, consulta aquí.

Ingresamos con nuestro usuario y creamos un directorio en el /home y accedemos a él.

mkdir repositorio
cd repositorio

Creamos un repositorio vacío de GIT

git init --bare

Habréis notado que hemos usado la opción --bare, esta indica a GIT que el repositorio va a ser un directorio "Pelado", distinto al directorio de "trabajo" que es el que solemos usar. La diferencia se encuentra en la estructura, el directorio pelado no contiene copias del archivo de trabajo en sí, sino que almacena todo lo que se encuentra en el subdirectorio .git

El lado luminoso del cliente:

Ya tenemos nuestro servidor, pero está totalmente vacío, este se debe añadir desde un repositorio de trabajo, si no lo tenemos creado ya voy a dar los pasos para hacerlo.

Presupongo que ya tenéis GIT instalado en vuestro equipo y listo para funcionar. Ahora estemos en el sistema operativo que estemos, abrimos nuestro terminal para preparar el área de trabajo y subir el repositorio a nuestro servidor.

Como hicimos con el servidor, nos vamos a la carpeta de nuestro proyecto e iniciamos el repositorio, pero esta vez omitimos la opción --bare para crear el repositorio como directorio de trabajo y hacemos el primer commit

git init
git add .
git commit -m "Primer Commit"

Nuestro repositorio local ya está funcionando, para poder subirlo tenemos que crear la conexión con el repositorio remoto.

git remote add [Nombre] ssh://[Usuario]@[URL]/RUTA/AL/REPOSITORIO

Vamos a desglosar este comando para quien no lo entienda:

[Nombre]: El nombre que reciba la conexión, luego la usaremos con los comandos PUSH y PULL

[Usuario]: Nombre del usuario que usamos en la conexión SSH (Debéis estar seguros que vuestro usuario tiene permisos de escritura y lectura, porque este comando no devuelve error, pero los siguientes si).

[URL]: Ya sea la IP local del servidor o un dominio.

/RUTA/AL/REPOSITORIO: Ruta del repositorio que creamos en el servidor.

Como ejemplo en mi entorno de pruebas ha quedado tal que así:

git remote add servidor ssh://git@192.168.1.33/home/git/repositorio

Para terminar tenemos que hacer "PUSH" y todo el trabajo será enviado a nuestro servidor.

git push servidor master

Recordar que donde pone "servidor" debéis introducir el nombre del repositorio que habéis creado con el comando git remote add... y master sería la rama que quereis subir.

Para comprobar que todo ha salido bien podemos clonar el repositorio que hemos subido al servidor en otra carpeta o equipo, para ello debemos usar el comando git clone con la misma ruta que usamos para hacer el remote, quedaría así:

git clone ssh://git@192.168.1.33/home/git/repositorio

Tenemos que tener en cuenta que al clonar el repositorio la rama que apunta al servidor se llama "origin", por lo cual al hacer pull o push debemos especificar:

git push origin master

Con esto ya hemos terminado la configuración de nuestro servidor y comprobado que todo funciona, espero que os sea útil para mantener el control de vuestras versiones de trabajo.

Enlace de Interes | https://github.com/oslugr/curso-git/releases

 

Añadir nuevo comentario