Inicio > Informática, Proyecto integrado > [Mini-guía] GIT, sistema de control de versiones.

[Mini-guía] GIT, sistema de control de versiones.

Gracias a la FCT (prácticas en empresa que se hace al final de los grados superiores) he aprendido a manejar este sistema de control de versiones que, la verdad, me parece bastante bueno y, a la vez, fácil de usar (o “usá”, gracias a Tugua por la observación).

Para este “tutorial” por llamarlo de alguna forma, usaremos lo siguiente:
Paquete git-core. Instalando este paquete nos será suficiente. Habrá que instalarlo tanto en el servidor como en cada uno de los clientes.

Una máquina virtual. En mi caso, tengo una máquina virtual creada con kvm que tiene un servidor web. Aprovecharé esta máquina para usarla como lugar de creación del repositorio.

Explicaré de la forma más simple posible como crear un repositorio local y como gestionarlo. Seguro que hay formas mejores de hacerlo, pero así me ha ido bien …

– En el servidor

  • Instalamos git-core
    aptitude install git-core
  • Creamos una carpeta en el lugar que queramos con el formato ****.git. En mi caso, he creado la carpeta en /var/git/ldap-php5.git

  • Movemos dentro de esa carpeta los archivos de nuestro proyecto. Yo moveré los archivos de mi proyecto integrado modificado, que lo tenia todo dentro del mismo repositorio y voy a aprovechar para separarlo.
  • Ahora crearemos dentro de esa carpeta un repositorio vacío. Nos colocamos dentro de la carpeta *****.git que habíamos creado y ejecutaremos la siguiente línea:
    git init
    Nos aparecerá el siguiente mensaje (en vuestro caso la carpeta será otra):

pantalla salida git-init

  • Añadimos los archivos.
    git add archivo/s
    Con esto añadimos los archivos que queramos a la cola de nuestro repositorio. Yo, normalmente, suelo usar “git add .“, para añadir todos los archivos que se hayan cambiado.
  • Confirmamos los archivos añadidos. Esto se hace con la instrucción commit.
  • git commit -a -m “Aquí ponemos un comentario”

    Con esta línea hacemos que los cambios añadidos con git add se den por buenos, por decirlo de alguna forma.
  • Creamos un usuario llamado “git”. Todos los cambios que hagamos los haremos con este usuario, para que no haya problema de permisos. Toda la gente que colabore en el proyecto debe saber la contraseña del usuario “git”.
  • adduser git

  • Damos al usuario “git” permisos sobre el repositorio.
    chown -R
    git:git /var/git/ldap-php5.git

Con esto ya tenemos terminado todo lo que hay que hacer en el lado del servidor. Ahora a por el cliente.

En el cliente.

  • Instalamos git-core. Como ya dije, este paquete es necesario tanto en el servidor como en el cliente.
    aptitude install git-core
  • Clonamos el repositorio del servidor.
    git clone git@192.168.1.100:/var/git/ldap-php5.git ldap-php5
  • En mi caso, la instrucción queda así. “git clone” es el comando, el “git” antes del arroba es con el usuario que nos conectamos para clonar el repositorio (eso es muy importante, los clone siempre con el usuario “git”), y lo de después de la arroba es la ip del servidor y la ruta a la carpeta donde creamos el repositorio.Con esto ya tendremos una copia exacta de todo lo que añadimos en el repositorio del servidor.

Así ya tenemos listo el repositorio local para poder hacer cambios y subirlos al repositorio remoto. Explico un poco lo básico de GIT, paso a paso.

  1. Hacemos cambios en un archivo cualquiera. Yo editaré con “nano” el footer.php de mi proyecto. Grabamos los cambios.
  2. Hacemos un “git status”. Esto nos mostrará los cambios que hemos hecho hasta ahora.
  3. git status.png

  4. Hacemos un “git add .” para añadir los cambios a la cola del repositorio local.
  5. Ahora si hacemos un “git status”, veremos que los cambios están añadidos y listos para hacer un “commit”, o lo que es lo mismo, confirmar los cambios añadidos con “git add .”
  6. git status-post-add

  7. Confirmamos los cambios. Para ello, usaremos la línea “git commit -a -m “cometario””. En mi caso:
    git commit -a -m “Cambios de prueba en footer.php”
  8. Ahora ya estamos listos para subir los cambios al repositorio remoto. Esto se hace con el siguiente comando:
    git push

Como veis, no es necesario indicar ni la ip ni ruta hacia el repositorio remoto, ya que en el archivo .git/config están guardados esos datos de cuando hicimos el “git clone”.

    Pues listo. Así funciona GIT :). Aunque antes, varias cosas que aclarar…

    • Antes de hacer cualquier cambio en nuestro repositorio local hay que actualizar los datos con los del repositorio remoto. Para ello usamos el commando “git pull”. Así que ya sabéis, antes de empezar a cambiar cosas, haced un “git pull” para descargaros los cambios que hayan podido hacer otras personas.
    • GIT guarda un log de todos los cambios hechos en el repositorio. Para ver esos cambios, podemos usar dos comandos distintos:
      • git show : muestra las diferencias entre dos versiones. Por ejemplo, vas a empezar a trabajar y descargas los cambios del repositorio con “git pull”. Si quieres ver los cambios que han ocurrido entre la versión del repositorio que tenías tu en local y la nueva después de actualizar, usamos git show y verás esos cambios, con el respectivo comentario.
      • git log -p : lo mismo que “git show”, pero muestra el log completo desde el primer cambio hasta el último.

    ¡Pues hala! Creo que con esto teneis lo suficiente como para poder hacer vuestros repositorios y no morir en el intento :D. De todas formas, si no tenéis servidor y/o preferíis colocar vuestro repositorio en internet, podeis entrar en http://github.com/ y crear allí vuestro repositorio. Hay varias opciones de pago, pero hay una que es gratuita que, normalmente, puede ser suficiente.

    Anuncios
    1. Aún no hay comentarios.
    1. 29 septiembre 2009 en 9:22 AM

    Responder

    Introduce tus datos o haz clic en un icono para iniciar sesión:

    Logo de WordPress.com

    Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

    Imagen de Twitter

    Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

    Foto de Facebook

    Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

    Google+ photo

    Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

    Conectando a %s

    A %d blogueros les gusta esto: