Beruflich Dokumente
Kultur Dokumente
El uso de SVC facilita el trabajo en modo colaborativo y paralelo, mediante el uso de ramas y
de funcionalidades como la capacidad de combinar o mezclar (merge) versiones diferentes de
un mismo documento.
En general cualquier SVC ofrece capacidades para revertir un archivo o un proyecto entero a
un estado anterior. Se ofrecen tambin facilidades para comparar cambios a lo largo del
tiempo, ver quin modific por ltima vez algo que puede estar causando un problema, quin
introdujo un error y cundo, y mucho ms.
Usar un SVC tambin permite recuperar archivos o parte de archivos perdidos con mucha
facilidad.
1
contiene todos los archivos versionados, y varios clientes que descargan los archivos desde ese
lugar central
2
Son necesarias polticas de nomenclaturas y ser cuidadosos con las polticas de
escritura.
No se favorece la confirmacin de cambios, sino que se tiende a esperar a tener
bastantes cambios y bien pulidos antes de confirmarlos (y subirlos al repositorio).
Los SVC distribuidos se han popularizado mucho porque solucionan casi todos esos problemas:
Git es un sistema de control de versiones distribuido, creado por Linus Torvalds, el creador del
ncleo Linux
Permite intercambio directo entre los repos de diferentes personas sin pasar por el
repositorio central
Super rpido
Muy eficiente en el uso del espacio. Slo se guardan las diferencias entre los archivos.
Para hacernos una idea de la eficiencia y velocidad de Git bastan un par de ejemplos
Rapidez: Mostrar las diferencias de todo el kernel, 74,000 commits, cuesta pocos
segundos.
Eficiencia memoria: El repositorio en CVS del Mozilla Project es de 3GB, en Subversion
es de 12GB en formato fsfs. EnGit es de 300 Mb
Git funciona mediante el uso de instantneas, las cuales capturan el estado del proyecto en un
momento dado y permiten recuperar ese estado cuando se desee.
3
El historial de un proyecto versionado con Git se representa como una coleccin de
instantneas agrupadas secuencialmente en ramas.
Rama: una rama es una entidad que permite trabajar simultneamente con diferentes
instantneas o versiones de un proyecto.
Las ramas diferentes a la rama principal, o master, se crean como bifurcaciones de una rama
raz, cuyo historial de confirmaciones copian.
A partir de su creacin, una rama puede seguir su propio camino, divergiendo ms o menos de
su rama de origen
Es posible mezclar ramas entre s, e incluso reordenar las diferentes confirmaciones (rebase)
La figura siguiente ilustra los principales conceptos necesarios para entender cmo funciona
Git y algunos de los comandos ms utilizados.
4
3. Repositorio local: contiene todas las confirmaciones realizadas en el proyecto, las
cuales pueden pertenecer a diferentes ramas de trabajo. Para guardar una nueva
versin de un archivo en el repositorio es necesario confirmarlo con el comando
commit. En principio slo los archivos aadidos previamente al ndice se pueden
confirmar, pero hay una opcin que permite incluir en una confirmacin aquellos
archivos modificados todava no aadidos al ndice: commit a.
4. Repositorio remoto (origin/upstream): se trata de un repositorio Git almacenando en
algn servidor conectado a Internet, el cual permite compartir contenido con
diferentes personas. Es posible pasar contenido de un repositorio remoto a otro local
mediante los comandos fetch o pull. El primero se baja los cambios al repositorio local,
pero no modifica nuestro espacio de trabajo, de tal manera que es posible revisar los
cambios antes de mezclarlos con el contenido local. El segundo en cambio adems de
bajarse los cambios actualiza nuestro espacio de trabajo con la ltima instantnea
descargada desde el repositorio remoto.
Otro comando muy utilizado que hay conocer es checkout, el cual se utiliza para cambiar el
contenido del espacio de trabajo, por ejemplo tras bajar los cambios en una rama desde un
repositorio remoto, cuando queremos cambiar de rama, o si queremos ver el estado del
sistema en otro instante.
Bitbucket es una plataforma Web para gestionar repositorios de proyectos que utilicen el
sistema de control de versiones Git o Mercurial. Sus principales caractersticas son
Lo primero que tenemos que hacer para poder trabajar con Bitbucket es crear una cuenta.
Para ello nos vamos a la pgina principal de bitbucket: https://bitbucket.org/
5
Pulsamos sobre el botn Sign up for free y eso nos llevar al formulario de creacin de nueva
cuenta de usuario. Si queremos aadir o modificar contenido en nuestra cuenta de Bitbucket,
necesitamos confirmar la direccin de correo electrnico usada en el registro de usuario.
Una vez completada la creacin de la cuenta de usuario, lo siguiente que vamos a hacer es
crear un repositorio, el cual usaremos durante el resto de la asignatura para llevar un control
del proyecto de prcticas.
6
de nuestro proyecto, gestionarlo o comunicarte con otros participantes Puedes empezar a
explorar la interfaz para familiarizarte con el entorno y ver las principales opciones disponibles.
Puedes hacer clic en elementos de la barra para ver qu hay detrs de cada uno. Tambin
puedes navegar utilizando mtodos abreviados de teclado. La lista de mtodos abreviados se
puede consultar pulsando ? en el teclado.
Para invitar a otros usuarios a nuestro proyecto hay que ir al apartado de administracin de
acceso (Access management), y ah introducir el nombre de usuario bitbucket al que queremos
invitar o una direccin de correo electrnico.
7
3 CLONAR UN REPOSITORIO GIT Y AADIR CONTENIDO
Clonar consiste en realizar una copia completa de un repositorio Git. Tpicamente se realizan
clones de un repositorio remoto a un repositorio local para poder trabajar sobre l.
Nota: Git admite varias formas de instalacin en Windows, siendo la ms habitual y la menos
intrusiva la que usa un terminal propio, GitBash, para introducir comandos Git. Otra opcin es
modificar el entorno para poder invocar comandos Git desde un terminal Windows normal
(Cmd).
Abrimos un terminal para ejecutar comandos de git. En Linux/MacOS podemos ejecutar los
comandos de Git en cualquier terminal. Si estamos en Windows, caben varias opciones.
Aunque es posible configurar Windows para usar Git desde la consola del SO, la instalacin
para Windows de Git incluye un terminal especfico, denominado Git Bash.
El siguiente fragmento muestra los comandos a ejecutar, as como la informacin ofrecida por
Git.
Tras introducir la contrasea pertinente, nos informa de que hemos clonado un repositorio
vaco.
8
La siguiente imagen muestra los pasos necesarios para crear un archivo por consola (en el
ejemplo se ha utilizado el comando echo, aunque podra hacerse por cualquier otra va, como
un editor de texto) y cmo queda el repositorio tras su creacin. Para obtener una descripcin
del estado actual del repositorio se utiliza el comando git status.
Mario@HAL ~/repos
$ cd gpr
Mario@HAL ~/repos/gpr (master)
$ echo "Nombre propio y usuario de Bitbucket" >> participantes.txt
Mario@HAL ~/repos/gpr (master)
$ git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
participantes.txt
nothing added to commit but untracked files present (use "git add" to track)
Untracked files nos indica que hay contenido nuevo que no est siendo seguido por el
sistema de control de versiones, dicho de otro modo, no ha pasado al ndice (muy conocido
tambin como stage area), se encuentra tan solo en el espacio de trabajo.
Ahora, Git nos informa de que hay cambios registrados en el ndice, que necesitan ser
confirmados si queremos guardar una instantnea del proyecto. En Git se promueve la
9
realizacin de frecuentes confirmaciones correspondientes a pequeos cambios, no vale la
pena esperar a tener muchos cambios dado lo poco que cuesta crear una instantnea (tanto
en tiempo como en espacio).
Lo primero que hay que configurar es el nombre de usuario y la cuenta de correo, para
establecer la autora de las confirmaciones.
10
A continuacin se muestra un ejemplo de confirmacin, comando commit. Con la opcin m y
una cadena de texto se asocia un mensaje a la confirmacin. Este mensaje se suele utilizar
para describir en que consisten los cambios confirmados en esta instantnea.
Finalmente, nos quedar subir la nueva instantnea del proyecto a nuestro repositorio
remoto. Para ello contamos con el comando push, cuyo uso queda reflejado en el siguiente
cuadro.
Una vez completada la subida de la instantnea, la rama actual, que es la que subimos con el
push, quedar emparejada a la rama remota, lo que le permitir seguir los cambios producidos
en esa rama en el repositorio remoto.
En resumen vers que tienes una sola rama, la rama principal o master
11
En fuente vers que slo tienes el archivo participantes.txt. Como es un archivo de
texto puedes adems ver su contenido, simplemente pinchando en l.
En confirmaciones vers que slo tienes una confirmacin, anotada con el mensaje
Confirmacin inicial con participantes.txt
En ramas vers que no hay nada todava, pues slo tienes la rama master.
Veamos tambin el uso de la opcin a en un commit, la cual nos evita tener que aadir los
cambios al ndice para que sean confirmados.
Ahora podramos revisar el repositorio en bitbucket para comprobar cmo ha quedado. Como
sugerencia, consulta los siguientes apartados
Confirmaciones: vers que hay 2 confirmaciones, cada una con su propio HASH code,
identificador nico de una confirmacin.
12
Fuente: vers que slo aparece el archivo participantes.txt como un enlace. Si pinchas
en l podrs visualizar su contenido (esto slo es posible para archivos de texto, para
binarios slo podremos descargarlos).
Adems de ver y editar contenido, puedes consultar diferencias (incluso en modo lado-
a-lado) entre varias versiones de un mismo archivo.
A continuacin vamos a ver cmo se edita contenido directamente en Bitbucket, pero antes
vamos a aadir contenido ms interesante a nuestro repositorio.
Descarga y descomprime el archivo caso_estudio.zip, el cual contiene una descripcin del caso
de estudio en formato mark_down, as (caso_estudio.md) como una serie de imgenes en una
carpeta denominada media.
13
(1) Adems de ver el contenido del archivo abierto, podemos mostrar tambin las
diferencias con respecto a la versin anterior, o
(4) Ver todas las confirmaciones permite acceder a todo el historial (log) de
confirmaciones previas.
(5) Le damos al botn de Editar (la flecha nos permite cambiar el nombre o borrar este
archivo), y pasaremos al modo de edicin
14
(1) Vemos que el editor detecta el archivo como de tipo Markdown
(4) Podemos elegir entre cancelar todos los cambios o guardarlos mediante su
confirmacin (botn azul). Nosotros lo vamos a confirmar, con el mensaje Aade
casos de uso al caso de estudio
15
introducidos en cada confirmacin
(5) Detalle de todos los cambios producidos en cada uno de los archivos. Se pueden
tambin ver las diferencias o el fichero original.
Por ltimo, slo nos quedara, si as lo deseamos, actualizar nuestro repositorio local con los
cambios introducidos en el repositorio remoto a travs de la interfaz web.
Si ha cambiado algo en el repositorio remoto y queremos actualizar el repo local para estar en
sincrona, debemos ejecutar un comando pull.
Con fetch tambin podramos descargar los cambios sin modificar el espacio de trabajo actual.
De hecho, si hacemos un pull directo veremos que en realidad tambin se ejecuta un fetch
(fetching origin)
16