Mi intención con esta serie de artículos es cubrir los fundamentos de Git por medio de un tutorial muy sencillo en donde usaremos los comandos más básicos de esta fantástica herramienta.
En este tutorial asumiremos el rol de un desarrollador web que ha sido contratado por un amigo (Juan) para que le cree un blog muy simple. Como somos personas precavidas, decidimos usar Git para llevar un histórico de las modificaciones que vamos realizando en el sistema y así no correr riesgos en caso de meter la pata con el código o borrar archivos accidentalmente.
Nota: Se asume también que como programadores serios, estamos trabajando en alguna versión de Linux. En mi caso, Ubuntu 12.10.
El primer paso en nuestra aventura es instalar Git
sudo apt-get install git
Luego de esto, debemos crear un directorio en donde vivirán todos los archivos de nuestro blog
cd ~/scripts
mkdir website
cd website
Iniciamos el repositorio de Git en la carpeta activa (website)
git init
Usualmente, el primer archivo que se crea para cualquier página web es el “home” o la página de inicio. Tradicionalmente, a esta página se le llama index.html
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<title>El Blog de Juan</title>
</head>
<body>
<h1>Últimos Artículos</h1>
<p>Aún no hay artículos publicados</p>
</body>
</html>
En este punto podemos observar el estado de Git usando el comando git status
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# index.html
nothing added to commit but untracked files present (use "git add" to track)
Git nos está informando varias cosas:
- Estamos actualmente en la rama “master” (On branch master )
- El primer commit que hagamos, será el primero de nuestro repositorio (Initial commit )
- Existen archivos que no están siendo “rastreados” por el repositorio (Untracked files ), en particular, el archivo index.html
- Si intentamos hacer un commit ahora, nada entrará en el repositorio pues no tenemos nada cargado en el escenario (nothing added to commit )
Si observamos con cuidado, veremos que Git nos indica como agregar al escenario, los archivos que no están siendo rastreados (use “git add <file>…” to include in what will be committed) . Como deseamos agregar el archivo index.html al escenario, ejecutaremos el comando de la siguiente forma:
git add index.html
Ejecutando nuevamente “git status”, podemos observar que el archivo index.html ya está siendo rastreado por el nuestro repositorio y está en la lista de cambios que serán almacenados en el repositorio durante el próximo commit.
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: index.html
Finalmente, para almacenar nuestro archivo index.html en el repositorio, ejecutaremos un commit
$ git commit -m "El primer commit"
[master (root-commit) c701efc] El primer commit
1 file changed, 11 insertions(+)
create mode 100644 index.html
Todo mensaje de commit debe estar acompañado de un mensaje explicativo de los cambios que se están almacenando, es por ello que usamos la bandera -m (por message) en el comando, seguido del mensaje en si “El primer commit”.
La salida de este comando nos da información importante:
- Nos indica el valor hexadecimal que identifica a este commit dentro del repositorio (c701efc )
- La cantidad de archivos que han cambiado desde el último commit (1 file changed ). Para Git, cualquier acción (crear, editar o eliminar) cuenta como una “modificación”
- La cantidad de líneas de código que han sido modificadas en total desde el último commit (11 insertions (+) ). En nuestro caso, refleja las 11 líneas que tiene nuestro pequeño archivo index.html que han sido agregadas al repositorio (por eso el símbolo +)
Si ejecutamos una vez más git status, veremos que el último commit del repositorio se corresponde exactamente a nuestro directorio de trabajo (working directory)
$ git status
# On branch master
nothing to commit (working directory clean)
Para listar el histórico de cambios en el repositorio, hacemos uso del comando “git log”
$ git log
commit c701efcf240ae8fcc4b8fe0ee610fa65e915aba6
Author: David Barreto <barretollano@gmail.com>
Date: Fri Apr 26 10:46:27 2013 -0430
El primer commit
Acá podemos observar:
- El hash que identifica al commit. Este valor hexadecimal es tan largo (para evitar duplicados o colisiones), que usualmente solo se usan los primeros 7 caracteres c701efc . Este es el mismo valor que nos mostró el comando “git commit” en el paso anterior y sirve como alias para identificar un commit en particular.
- El nombre y correo de la persona que ha realizado el commit
- La fecha y hora del commit, incluyendo la diferencia horaria respecto a UTC (-0430 por ser Venezuela)
- El mensaje del commit
Hasta acá llega la primera parte del tutorial, muy pronto estaré montando la segunda parte.
Podrias corttar y pegar estos textos ebn Paint y con un poco de voz transformarlos en video youtube. Sería de interès para muchos y por el momento mas accesible al público grueso
En tal caso creo que mejor sería hacer un screencast donde me vean programando