Usar GitLAB para control de versiones de software

Por Sandra Parra

GitLAB es una herramienta que gestiona las distintas versiones de los programas de un desarrollo de software en ambientes de trabajo colaborativo entre programadores. Permite centralizar los archivos de un sistema complejo de software, mantener el cronológico de versiones de los cambios realizados, la edición simultánea de archivos y compartir la carga de trabajo de un proyecto de desarrollo.

Así que … aquí un resumen de las situaciones y los comandos que uso cuando me toca trabajar colaborativamente con un grupo de programador@s, usando la herramienta para control de versiones de software: GitLab.

 

 

GitLab, la versión community, tiene una licencia Open Source: MIT Expat license, así que puedes usarla para tus proyectos de desarrollo, en un servidor propio. También puedes usar el servidor público de GitLab. Está programado en Ruby, usa postgres o mysql.

Entorno Colaborativo

El ambiente en el que implementaremos el Control de Versiones de Software con GitLab, consta del servidor público de GitLab, en el cual crearemos una cuenta y un proyecto de ejemplo que nombraremos: “Conectame”, el cual alojará el repositorio  de mi proyecto para plataformas Android: “Conectame”,  y una computadora local con S.O., Debian 8 (cliente), que usaremos para actualizar nuestro software y subir los cambios al  servidor público de GitLab, que actuará como nuestro repositorio central  para el proyecto en cuestión.

1.- Instalar las herramientas para trabajar con GIT en la computadora local


apt-get install git

Se instalarán los siguientes paquetes extras:
git-man liberror-perl
Paquetes sugeridos:
git-daemon-run git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-cvs git-mediawiki
git-svn
Se instalarán los siguientes paquetes NUEVOS:
git git-man liberror-perl
0 actualizados, 3 nuevos se instalarán, 0 para eliminar y 121 no actualizados.
Se necesita descargar 4.552 kB de archivos.
Se utilizarán 23,5 MB de espacio de disco adicional después de esta operación.
¿Desea continuar? [S/n]

2.- Ejecutar las configuraciones locales básicas de GIT, con sus datos personales para usuario e email:


git config --global user.name "sparrara"
git config --global user.email "sparrara@gmail.com"

Para el paso 3 ó 4, solo ejecutar uno de los dos, según las necesidades:

3.- Caso: Configuración Inicial 1. Crear un nuevo repositorio local, de un proyecto alojado en el Servidor público de GitLab:

Si el proyecto ya existe y ya tenemos una cuenta con privilegios para ese proyecto, creada, lo primero es clonarse la rama o proyecto, en tu computadora local. Esto sólo lo hacemos la primera vez. En este caso, para la app para android, “Conéctame” alojada en mi cuenta pública de GitLab, nos ubicamos en el directorio donde queremos crear la carpeta del proyecto y ejecutamos, (sustituir sparrara y Conectame.git por los datos particulares):


git clone git@gitlab.com:sparrara/Conectame.git

Este comando traerá una copia del proyecto, desde el servidor público de GitLab a mi computador local.

Si el proyecto estuviese en un servidor propio (188.8.188.188):

git clone https://188.8.188.188/NOMBRE USUARIO/Conectame.git

4.- Caso: Configuración Inicial 2. Subir al servidor público de GitLab, por primera vez, el proyecto “Conectame” desde mi repositorio local, ubicado en el directorio Conectame:

4.1.- Ir al directorio correspondiente al proyecto, para nuestro caso: “Conectame”


cd Conectame

4.2.- Inicializar el directorio Conectame como un ambiente de trabajo GIT:


git init

Reinitialized existing Git repository in /home/sparra01/Escritorio/AndroidAPP/Conectame/.git/

4.3.- Habilitar, para hacer envíos de código, el repositorio central donde se subirán los cambios, indicando su URL:


git remote add origin https://gitlab.com/sparrara/Conectame.git

4.4.- Agregamos los archivos del directorio Conectame, al ambiente GIT inicializado en el paso anterior:


git add .

4.5.- Creación del mensaje de Envío Inicial para los archivos que serán subidos al servidor central:


git commit -m "Envío Inicial" -a

4.6.- Envío Inicial de archivos al servidor central, indicar usuario y password:


git push -u origin master

Username for ‘https://gitlab.com’: sparrara
Password for ‘https://sparrara@gitlab.com’:
Counting objects: 374, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (268/268), done.
Writing objects: 100% (374/374), 127.22 KiB | 0 bytes/s, done.
Total 374 (delta 131), reused 0 (delta 0)
remote: Resolving deltas: 100% (131/131), done.
To https://gitlab.com/sparrara/Conectame.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.

5.- Modificar, crear y subir archivos

luego cada vez que modifiquemos un archivo, en nuestro repositorio local, podemos ejecutar estos comandos para actualizar el repositorio central:

5.1.- Actualizamos archivos en directorio local:


git add .

5.2.-Documentamos cambios realizados:


git commit -m "Modificacion de json" -a

[master 5f5300d] Modificacion de json
1 file changed, 1 insertion(+), 1 deletion(-)

5.3.- Actualizamos repositorio central


git push -u origin master

Username for ‘https://gitlab.com’: sparrara
Password for ‘https://sparrara@gitlab.com’:
Counting objects: 10, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (10/10), 776 bytes | 0 bytes/s, done.
Total 10 (delta 4), reused 0 (delta 0)
To https://gitlab.com/sparrara/Conectame.git
ea482d5..5f5300d master -> master
Branch master set up to track remote branch master from origin.

Referencias:

.- Aprende a moverte con GitLab: https://www.udacity.com/course/viewer#!/c-ud775/l-2980038599/m-2960778924

.- http://codehero.co/git-desde-cero-instalacion-configuracion-y-comandos-basicos/

.- https://www.digitalocean.com/community/tutorials/how-to-use-git-effectively

.- http://stackoverflow.com/questions/21255438/permission-denied-publickey-fatal-could-not-read-from-remote-repository-whil

.- http://stackoverflow.com/questions/1221840/remote-origin-already-exists-on-git-push-to-a-new-repository


You May Also Like