Aclaro que he usado GIT como usuario de GitHub para hacer envíos, pero no había configurado un servidor git antes, por lo que el manual puede contener fallas o formas mejores de hacer las cosas, las cuales agradecería que incluyeran en sus comentarios.
0. Debemos tener previamente instalados: git y openssh.
Open SSH se puede intstalar así:
1. Crearemos un usuario para dedicarlo exclusivamente como servidor de git
Por consola:
También pueden usar el gestor de usuarios y grupos si prefieren, o usar otro nombre (no necesariamente git).
2. Usamos el terminal como el usuario creado
3. Vamos a la carpeta de usuario
4. Creamos la carpeta que albergará las llaves
4.1. Creamos nuestra llave SSH
No estoy seguro si esto es necesario en este paso para el usuario git que será el servidor, pero servirá también para los equipos que se conectaran al servidor, pues se requiere que tengan una llave SSH.
Vamos a la carpeta
Ejecutamos el comando
Nos solicita algunos datos, el primero debemos llenarlo, el segundo (passphrase) será un password que se puede omitir si se quiere, los demás podemos dejarlos en blanco.
Se nos habrán generado dos archivos, una llave privada con el nombre id_rsa (o el que hayamos asignado luego de ejecutar el comando anterior), y una llave pública id_rsa.pub (con el mismo nombre del anterior).
El contenido de id_rsa.pub (que se puede visualzar con cualquier editor de texto plano) será que usaremos el el siguiente paso (de los equipos que se conectaran).
5. Creamos el archivo authorized_keys dentro de .ssh
Dentro del archivo incluiremos el contenido de las llaves públicas (.pub) de las personas que colaboraran.
Son algo así:
6. Vamos a la carpeta dónde crearemos el repositorio en el servidor
Por ejemplo, yo usé una carpeta en el directorio de usuario:
7. Creamos el repositorio (es una carpeta sencillamente) y entramos en el
mkdir nombredemirepositorio.git
cd nombredemirepositorio.git
8. Inicializamos el repositorio
9. Ahora ya podremos crear y modificar los primeros archivos en el repositorio.
Desde el usuario que usaremos para contribuir al proyecto, o desde el equipo de las otras personas que contribuirán.
cd micarpetaparaelproyecto
git init
Creamos y modificamos los archivos iniciales.
git add .
git commit -m «Primer commit»‘
git remote add origin git@localhost:/home/git/carpetadedesarrollo/nombredemirepositorio.git
git push origin master
Si estamos en el mismo computador (por ejemplo yo creé el usuario git para poder hacer commits desde mi cuenta de usuario), podemos usar localhost, de lo contrario, debemos reemplazarlo por la IP del equipo dónde configuramos el servidor. Así mismo, naturalmente, debemos cambiar aquellos nombres en los que dejé nombres eplicativos (por ejemplo: nombredemirepositorio.git).
10. Ya podemos contribuir y desarrollar colaborativamente en nuestra red local.
¿Por que querría hacer esto?
- Evitar dejar público el código en GitHub o no pagar para tenerlo privado.
- Trabajar a mayor velocidad en una red local.
Yo lo hice para desarrollar colaborativamente en la red de la empresa que nos encontramos creando, así, evitamos dejar público el código en GitHub cuando no lo deseamos.
¿Para qué lo harías tú?