Introducción a Git: primera parte

por:

Manual de git tu repositorio

 

¿Qué es git?

Git es un sistema de control de versiones distribuido diseñado por Linus Torvalds para usarlo en el desarrollo del kernel Linux.

1 ¿Qué es un sistema de control de versiones?

Un sistema de control de versiones permite guardar la historia de una colección de archivos (fecha de modificación, autor de la modificación, qué se modificó, etc.) y te permite revertir los cambios a una versión anterior del archivo.

Dicha colección de archivos y su historia se almacenan en los llamados repositorios.

 

Instalación

1 Windows

La instalación en Windows es muy sencilla, basta con descargar el .exe del instalador desde la página de GitHub del proyecto msysGit.

Este .exe instalará la versión de línea de comandos y la versión con interfaz gráfica.

2  Mac

Se puede instalar de dos maneras:

1 Descargar el instalador gráfico desde http://code.google.com/p/git-osx-installer.

2 La segunda manera es instalarlo usando MacPorts. Si tienes MacPorts instalado instala git con:

1
$ sudo port install git-core +svn +doc +bash_completion +gitweb
$ sudo port install git-core +svn +doc +bash_completion +gitweb

3 Linux

Si usas una distribución basada en Debian (Ubuntu, Linux Mint, elementaryOS) escribe en un terminal:

1
$ sudo apt-get install git
$ sudo apt-get install git

Los usarios de Fedora pueden usar yum:

1
$ sudo yum install git-core
$ sudo yum install git-core

Y para usuarios de Arch Linux:

1
2
$ sudo pacman -S git
<span id="more-233"></span>
$ sudo pacman -S git
<span id="more-233"></span>

Configuración

En git hay tres niveles de configuración: a nivel de repositorio, a nivel de usario y a nivel del sistema.

Lo primero será decir nuestro nombre y nuestro correo, para que los cambios que realicemos se relacionen con nosotros.

1
$ git config --global user.name “Nombre Apellido”
$ git config --global user.name “Nombre Apellido”
1
$ git config --global user.email[email protected]com
$ git config --global user.email “[email protected]

Esto almacenará los datos en la configuración del usuario, para almacenarlos en la configuración del sistema o en la del repositorio basta con sustituir el –global por –system o –local respectivamente.

Si además queremos que la salida de git salga coloreada debemos escribir:

1
$ git config --global color.ui true
$ git config --global color.ui true

Creación de un repositorio

Para crear un nuevo repositorio hemos de escribir:

1
$ git init
$ git init

Esto creará una carpeta llamada .git con la información del, por ahora vacío, repositorio.

GIT1

 Añadiendo archivos al historial

Primero deberemos tener archivos en la carpeta:

1
$ touch README fuente.c
$ touch README fuente.c

Con este comando estamos creando dos ficheros vacíos llamados README y fuente.c.

Podemos comprobar el estado de los ficheros con el comando git status

Sin nombre2

Como podemos ver, git nos dice que hay dos archivos que no están registrados y que usemos git add para registrarlos. Supongamos que de momento solo queremos añadir el README al repositorio

1
$ git add README
$ git add README

Sin nombre3

Ahora nos señala que el README será añadido al repositorio en el próximo commit (confirmación), así que hagamos el commit. En git es obligatorio hacer un comentario por cada commit, en este caso pondré de comentario “First commit”:

1
$ git commit -m “First commit”
$ git commit -m “First commit”

Si no pasamos el comentario en los argumentos git abrirá un editor para que escribas uno.

 

Trabajando con repositorios remotos

1 Clonando un repositorio

Para clonar un repositorio, ya sea local o remoto, el comando a usar es git clone, por ejemplo para clonar el repositorio del kernel Linux en GitHub usaremos:

1
$ git clone git://github.com/torvalds/linux.git
$ git clone git://github.com/torvalds/linux.git

Esto guardará el repositorio en un directorio llamado como linux, como el repositorio. Si queremos guardarlo en otro directorio añadiremos otro argumento con el nombre deseado. Por ejemplo, si queremos guardar el repositorio en una carpeta llamada kernel:

1
$ git clone git://github.com/torvalds/linux.git kernel
$ git clone git://github.com/torvalds/linux.git kernel

2 Actualizando el repositorio

Si ha habido cambios en el repositorio remoto y queremos actualizar nuestra copia escribiremos lo siguiente:

1
$ git pull origin master
$ git pull origin master

“origin” es la dirección desde la que clonamos el repositorio que es guardada al hacer el clone, y “master” es la rama desde la que queremos actualizar. Master suele ser la rama principal.

3 Subiendo los cambios

Cuando queramos subir los cambios al repositorio remoto usaremos:

1
$ git push origin master
$ git push origin master

Dependiendo de la configuración del servidor y del protocolo de la dirección (SSH, HTTPS, GIT, etc.) nos pedirá usuario y contraseña y si tenemos permisos de escritura subirá los cambios.

 

Git Hosting

Hay varias opciones a la hora de alojar nuestros repositorios, pero aquí hablaremos de la más conocida: GitHub.

GitHub ofrece un plan gratuito con ilimitados repositorios públicos, pero para trabajar con repositorios privados necesitas tener un plan de pago. El plan de pago más barato cuesta $7 mensuales, permitiendo tener 5 repositorios privados. Este plan de pago es gratuito para estudiantes universitarios, solo has de entrar en https://github.com/edu y ligar tu correo de estudiante a tu cuenta en Github.

Otra opción conocida es Bitbucket, que al contrario que GitHub, te permite tener también ilimitados repositorios privados. En cambio, Bitbucket limita el número de colaboradores que puede tener un repositorio, estableciendo dicho límite en 5 usuarios en el plan gratuito.

Para consultar otros servicios de hosting podéis consultar en https://git.wiki.kernel.org/index.php/GitHosting.