Servicio Git

RDlab@lsi.upc.edu
Noviembre 2011

català Bienvenidos a LSI.

  1. Introducción
  2. Acceso al servicio
  3. Requisitos
  4. Configuración inicial del proyecto
  5. Modificaciones en el proyecto
  6. Guardar cambios en revisión local
  7. Enviar cambios al servidor git­-rdlab
  8. Enlaces de interés

1. Introducción

A continuación se mostrará cómo acceder al servicio de repositorios Git del RDlab, y como realizar las tareas principales en modo texto (por línea de comandos).

2. Acceso al servicio

Para tener acceso al servicio se debe solicitar al RDlab un nombre de usuario (en adelante <username>) y una contraseña (<password>). También se puede solicitar un nombre para el repositorio (en adelante <repositorio>) que si no se solicita tendrá por defecto el nombre de usuario. Se pueden pedir vía web en a http://rdlab.lsi.upc.edu/index.php/es/servicios/peticionacceso.html o mediante e-mail a rdlab@lsi.upc.edu.

Una vez recibidos, el usuario ya dispone de un repositorio para sus proyectos. Este repositorio se inicializa desde RDlab con un archivo “readme.rdlab”.

Al repositorio se accede mediante el cliente de git y la URL http://git-rdlab.lsi.upc.edu/git/<repositorio>.git

2.1 Acceso https

También es posible en modo seguro mediante la url:

https://git-rdlab.lsi.upc.edu/git/<repositorio>.git

En caso de encontrar el seguiente error:

error: server certificate verification failed.
CAfile: /etc/ssl/certs/ca-certificates.crt
CRLfile: none while accessing https://git-rdlab.lsi.upc.edu/git/<repositorio>.git/info/refs
fatal: HTTP request failed

Será necesario ejecutar el siguiente comando:

git config --global http.sslverify "false"

3. Requisitos

IMPORTANTE: Para utilizar el servicio de Git del RDlab es obligatorio tener instalada una versión del cliente de git 1.6.6 o superior.

La versión instalada de Git se puede consultar con el comando “git --version”.

4. Configuración inicial del proyecto

El primer paso es configurar el proyecto en el ordenador del usuario. Para ello es necesario crear una capeta destinada a almacenar la copia del proyecto que se sincronizará con el servidor “git-rdlab”. Para nuestro ejemplo supondremos que se trata de la carpeta “/home/user/miProyecto”. Desde esta carpeta se ha de realizar una primera importación del proyecto que hay en el servidor “git-rdlab” mediante el comando “git clone”:

$ git clone http(s)://<username>@git-rdlab.lsi.upc.edu/git/<repositori>.git

El sistema nos pedirá la contraseña y a mostrará una salida como la siguiente:

Initialized empty Git repository in home/user/elMeuProjecte/<repositori>/.git

Con este comando se habrá creado una carpeta con el nombre en la cual encontraremos un archivo “readme.rdlab” y una carpeta “.git” que contiene la información que utiliza Git para el control de versiones.

Nota: una opción para no tener que indicar el usuario y contraseña en los comandos “git commit” y “git push” (ver apartado 7) es editar el archivo “.netrc” del directorio “home” del usuario (si no existe, se ha de crear) e incluir las siguientes líneas:

Machine git-rdlab.lsi.upc.edu
login <username>
password <password>

En cuyo caso el comando sería:

$git clone http1://git-rdlab.lsi.upc.edu/git/<repositorio>.git

Y el sistema no pedirá la contraseña.

5. Modificaciones en el proyecto

Cuando se realizan modificaciones en archivos del proyecto, se copian o añaden nuevos archivos, es necesario indicar a Git que debe incluirlos en el conjunto de archivos bajo revisión.

Para ello se utiliza el comando “git add <nombre de archivo>” o “git add .” para incluir todos los archivos. Supongamos que hemos añadido un archivo “HolaMundo.java”:

$ git add HolaMundo.java

6. Guardar cambios en revisión local

Con el comando “git commit” se crea una nueva revisión local. Es obligatorio incluir un comentario. Si no lo hacemos usando la opción “-m”, el programa nos abrirá el editor de texto por defecto para añadir uno:

$ git commit –m “afegit HolaMundo.java”

El sistema mostrará una salida como la siguiente:

[master 506ac89] Añadido HolaMundo.java
Committer: user <user@lsi.upc.edu> Your name and email address were configured automatically based on your username and hostname. Please check that they are accurate. You can suppress this message by setting them explicitly:

git config --global user.name "Your Name"
git config --global user.email you@example.com

If the identity used for this commit is wrong, you can fix it with:

git commit --amend --author='Your Name <you@example.com>'

1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 HolaMundo.java

Nota: A diferencia de svn, el hecho de modificar un archivo no implica que automáticamente se incluya en el próximo commit: es necesario ejecutar el comado “git add” (ver apartado 5) también en este caso.

Una alternativa es utilizar el comando “git commit -a” que es equivalente a hacer la secuencia de comandos “git add” y “git commit”. Este comando sólo funciona para hacer commit de los archivos modificados, no de los añadidos nuevos.

Para saber qué cambios se guardaran la próxima vez que realicemos un commit podemos ejecutar el comando “git status”, que nos informará de qué archivos se incluirán en la próxima revisión y cuales se ignorarán.

7. Enviar cambios al servidor git­-rdlab

El comando “git commit” sólo crea una revisión local. Para subir los cambios de la última revisión local al servidor “git-rdlab” debe utilizarse el comando “git push”:

$ git push

Nota: sólo se subirán al servidor los archivos que se hayan actualizado con el último comando “git commit”.

El sistema mostrará una salida como la siguiente:

Fetching remote heads...
   refs/
   refs/heads/
   refs/tags/
   updating 'refs/heads/master'
     from b6a55fa54e77b5c9aa56eb1ad9ea60d4cad2b1ee
     to 506ac89f2e9a66178e4b3d4471c9e3d97770cb97
sending 3 objects
   done
   Updating remote server info
   To http://git-rdlab.lsi.upc.edu/git/<repositorio> b6a55fa..506ac89 master ->
master

Si el sistema muestra el siguiente error:

error: The requested URL returned error: 401 while accessing http://git- rdlab.lsi.upc.edu/git/<repositori>/info/refs

debe comprobarse que hemos introducido las credenciales (usuario y password) correctamente, ya sea por línea de comandos o bien en el archivo “.netrc”, tal como se indica en el apartado 4.

8. Enlaces de interés

  1. Git, página oficial
    http://git-scm.com/
  2. Libro on-line “Pro Git professional version control”
    http://progit.org/book/