Nunca se sabe cuando te vas a ver en la tesitura de desarrollar software. Lo digo yo, que mis habilidades como programador son cercanas a cero y que sin embargo estoy embarcado en un proyecto de desarrollo de software que espero que termine siendo un bombazo. Ya os contaré.
La cuestión es que estamos trabajando dos personas: Jose que lleva el grueso del desarrollo y yo mismo que me dedico a proporcionar la infraestructura, traducir y retocar alguna cosilla. Para poder trabajar he montado un servidor con Ubuntu Server 12.04 en un viejo equipo casero que suministra el soporte de pruebas para nuestro desarrollo y al que nos conectamos por medio de no-ip . Hasta aquí todo sencillo, pero ahora apareció el problema de trabajar varias personas en el mismo proyecto y tener que llevar un control de versiones que evitara incoherencias.
De entre todas las posibilidades y dado que costales me dijo que estaba dispuesto a echarme una mano, me decidí por Git.
Os evito el rollo de lo bueno y bonito que es Git, que lo desarrolló el mítico Linus Torvalds y bla, bla, bla, para ir al grano.
Según mi experiencia estas son las cosas mínimas que hay que saber para montar un repositorio Git en un servidor Ubuntu y poder usarlo desde dos repositorios remotos de trabajo con dos usuarios.
Nota: no pongo los sudo que hay que usar, pero lógicamente tendremos que ser superusuarios en muchas de las fases
Del lado del servidor:
Instalar Git:
apt-get install
git apt-get install git-core
Después creo el grupo developers
groupadd developers
y añado los dos usuarios que lo van a usar
useradd -G developers -d /home/user1 -m -s /bin/bash user1
useradd -G developers -d /home/user2 -m -s /bin/bash user2
Y les asigno contraseña
passwd user1
passwd user2
Creo un directorio donde hacer el repositorio. En mi caso en /var/www/
mkdir -p /var/www/repo/prueba.git
Me posiciono en el repositorio y lo inicio
git init --bare --shared=group
y les doy permisos al grupo developer
chgrp -R developers . #Ojito al punto final que es importante
y creo un vínculo simbólico para cada uno de ellos a su home
ln -s /var/www/repo/prueba.git /home/user1
ln -s /var/www/repo/prueba.git /home/user2
Y coloríncolorado, en el lado del servidor ya está todo resuelto. Ahora vamos al lado de los clientes user1, que es quién tenía el proyecto en marcha y user2 que es quien se sumaba al proyecto. En ambos casos se trata de máquinas con Ubuntu 12.04 y la instalación se hace como siempre
apt-get install git
En el user1 me posiciono en el directorio donde están los archivos que son el proyecto de desarrollo y clono el repositorio del servidor
git clone user1@la_ip_de_mi_servidor:prueba.git
Incluyo todos los archivos del proyecto en el repositorio
git add *
Ejecuto los cambios
git commit -m "primera ejecución"
y los subo al servidor
git push origin master
En el user2 lo que necesito es clonar el repositorio
git clone user2@la_ip_de_mi_servidor:prueba.git
y TACHÁN ya tengo un servidor con un repositorio que controla mi proyecto y dos usuarios que lo usan y están coordinados. Ahora solo me falta definir una sencilla dinámica de trabajo:
Cada día que empezamos a trabajar nos bajamos la última situación del repositorio
git pull la_ip_de_mi_servidor:prueba.git
Trabajo con mi proyecto y cuando termino el trabajo añado los archivos nuevos y cambios
git add *
Ejecuto las modificaciones
git commit -m "mensaje que describe los cambios realizados"
y lo subo todo al servidor
git push origin master
La herramienta es más poderosa de lo que este minimanual describe, pero este puede ser un sencillo comienzo a Git, luego la curiosidad y las necesidades deben hacer el resto.
Fuente: pacoaldia | ubuntu-españa