Professional Documents
Culture Documents
Este tutorial es totalmente prctico. Se trata de realizar una sesin completa con
Git, paso a paso, y cindonos nicamente a sus operaciones bsicas en modo
local. Lo que haya de hacerse para interactuar con un repositorio remoto queda
para otra prctica.
Mientras he escrito el tutorial he ejecutado la sesin en mi ordenador y lo
reproduzco aqu tal cual.
Casi la totalidad de los comandos Git que he introducido os son ya conocidos de
la prctica online del da pasado. Pero ahora se trata de comentarlos en nuestra
lengua y de volver a ponerlos a prueba en un caso real dentro de nuestro propio
ordenador.
El directorio de trabajo
En Windows: cd C:\Users\Documentos\PruebaGit
En MacOSX: cd /Users/Documentos/PruebaGit
En Linux: cd ~/PruebaGit
Una vez que estamos ah, ejecutamos Git para que supervise y lleve el control de
versiones de lo que vayamos a hacer en nuestro directorio de trabajo.
git init
Si queremos una configuracin especial para Git en este directorio, una distinta
de la configuracin global del da pasado, la podemos realizar ahora:
1
Si la configuracin va a ser igual que la global, no hay que hacer nada ms.
A partir de este momento, Git controla nuestro directorio y seguir la pista de
los ficheros que le digamos.
Qu ve Git ahora?
$ git status
On branch master
Initial commit
Ficheros no rastreados
$ git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
hola.md
nothing added to commit but untracked files present (use "git add" to track)
2
Veamos cmo ha cambiado la cosa:
$ git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
Est claro, el fichero esta ah, es ya un nuevo fichero al que Git est siguiendo
la pista, preparado para que sus datos se almacenen en su base de datos de un
modo permanente, cuando se lo digamos, o dicho en terminologa Git, para que
el fichero quede confirmado (committed).
Confirmacin de ficheros
$ git status
On branch master
nothing to commit, working directory clean
Ficheros modificados
Ahora toca trabajar sobre nuestro fichero hola.md de la forma habitual, cam-
bindolo. Vamos a escribir en l Hola, Git, en lugar del Hola que haba.
Qu ve Git despus del cambio?
3
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: hola.md
no changes added to commit (use "git add" and/or "git commit -a")
Aparte de los mensajes de antes, lo nuevo ahora es que Git observa que hemos
modificado el fichero hola.md. Para l ahora est en un nuevo estado: modificado.
Git sabe esto, porque est comparando lo que tiene en su base de datos con lo
que hay ahora en el directorio de trabajo.
Desde aqu, el ciclo anterior se repetira. Aadiramos otra vez el fichero hola.md
al rea de preparacin y desde ah lo confirmaramos. Por supuesto, no tenemos
porque ejecutar estas operaciones inmediatamente. Podemos seguir trabajando y
modificando nuestro fichero, y dejar el proceso de preparacin y confirmacin
para cuando decidamos almacenar en la base de datos de Git los cambios de
forma permanente. Vamos hacerlo ahora:
El historial de versiones
Para terminar esta primera sesin real con Git podemos pedirle que nos muestre lo
que hay en su repositorio, esto es, los cambios (versiones) que hemos confirmado
para que se almacenen permanentemente en su base de datos.
$ git log
commit b383d7aea7baacba70db9fe7827232f35882ecd5
Author: Luis Sanjun <luisj.sanjuan@gmail.com>
Date: Mon Feb 2 17:18:41 2015 +0100
commit b4a5186a71e3ebf712de2f340f1d2ee7fa28cf7a
Author: Luis Sanjun <luisj.sanjuan@gmail.com>
Date: Mon Feb 2 17:05:01 2015 +0100
Aqu estn nuestras dos versiones, con su autor, hora, fecha de confirmacin
y el mensaje que introducimos en el momento de confirmarlas. Tambin hay
4
un nmero arriba, un identificador nico de cada confirmacin. Como se ve, se
muestran en orden cronolgico descendente.
Algo ms interesante es pasar la opcin -p o --patch (de parche). Nos mostrar
no slo el historial de versiones, sino, adems las diferencias entre la versin
original y la versin parcheada, o sea, cambiada.
commit b4a5186a71e3ebf712de2f340f1d2ee7fa28cf7a
Author: Luis Sanjun <luisj.sanjuan@gmail.com>
Date: Mon Feb 2 17:05:01 2015 +0100
Resumen de comandos
5
git status: Muestra el estado de los ficheros en el directorio de trabajo.
git add <fichero>: Aade el fichero al rea de preparacin. Adems, si
el fichero no estaba rastreado, cambia su estado a rastreado.
git commit -m "Mensaje": Confirma lo que resida en el rea de prepa-
racin. Los datos se almacenan permanentemente en el repositorio con el
mensaje asociado.
git log: Muestra el historial de versiones.
git log --patch: Muestra historial de versiones con diferencias incluidas.
Ejercicios