Вы находитесь на странице: 1из 40

Control de versiones con Git y

Bitbucket
Gestin de Proyectos
Curso 2014/15

Escola Tcnica Superior dEnginyeria Informtica


Universitat Politcnica de Valncia

Lista de Contenidos

Introduccin a Git y Bitbucket


Crear una cuenta en Bitbucket y un primer repositorio Git
Clonar un repositorio Git y aadir contenido
Actividad: Descripcin del caso de estudio

Introduccin a Git y Bitbucket

Sistema de Control de Versiones (SVC)

Registra los cambios realizados sobre un archivo o conjunto de


archivos a lo largo del tiempo, de modo que puedas recuperar
versiones especficas ms adelante.
Facilita el trabajo en paralelo gracias al uso de ramas y de
herramientas para combinar versiones diferentes de un mismo
documento(merges).
Permite revertir archivos a un estado anterior, revertir el proyecto
entero a un estado anterior, 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 fcilmente.

Sistemas locales, centralizados y distribuidos

SVC Local

SVC Centralizado

Sistemas locales, centralizados y distribuidos

SVC Distribuido

http://git-scm.com/

Qu es Git?

Un sistema de control de versiones distribuido

Caractersticas

Cualquier copia es un repositorio Git completo y autosuficiente


No depende de acceso a la red o de un repositorio central.
No es necesario tener un repositorio central, aunque s opcional
Permite intercambio directo entre los repos de diferentes personas sin
pasar por el repositorio central
Super rpido
Eficiente (usa poco espacio)
Mecanismo de branching y merging sofisticado, muchas opciones
Muy robusto frente a la corrupcin de datos

Creado por Linus Torvalds, el creador del ncleo Linux.

Conceptos bsicos de Git

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)

Instantnea: una instantnea se refiere al estado concreto del


proyecto en un momento determinado, correspondiente a una
confirmacin en particular. Cada instantnea (y la confirmacin que
la produce) recibe un cdigo SHA-1 (variante de cdigo Hash) que
la identifica inequvocamente.
Las instantneas se circunscriben a una rama en particular.

Conceptos bsicos de Git

https://bitbucket.org/

Qu es Bitbucket?

Almacenamiento de repositorios Git y Mercurial para equipos de


desarrollo de software, aunque permite cualquier contenido.
Permite repositorios privados sin lmite de cantidad
Permite gestin de equipos de trabajo (gratuito hasta 5 miembros)
Permite navegar por el cdigo con total libertad, explorando
diferentes ramas y momentos temporales (confirmaciones)
Gestin de incidencias
Permite mantener una wiki
Soporte para compartir archivos adicionales (no versionados)
Soporte para divisiones y peticiones de integracin (forks y pull
requests)
Integracin con herramientas profesionales: Jira, Crucible, Bamboo,
Jenkin

Crear una cuenta Bitbucket y un repositorio Git

Primeros pasos
1.
2.

3.
4.

Crear una cuenta Bitbucket


Crear un repositorio Git. Inicialmente estar vaco. A diferencia de
SVN Git no distingue entre las copias de trabajo y un repositorio
central, todos son repos Git completos.
Explorar tu nuevo repositorio para familiarizarte con el entorno.
Confirmar direccin de correo electrnico. Cuando se crea una
cuenta, Bitbucket enva un correo electrnico para confirmar tu
correo electrnico. Confirmar el email es necesario para permitirte
subir al repositorio contenido mediante el comando push.

Crear un repositorio

Explorar repositorio

Clonar un repositorio Git y aadir contenido

Clonar repositorio Git

Clonar consiste en realizar una copia completa de un repositorio Git.


Tpicamente se realizan clones de un repositorio remoto a un
repositorio local.
En Bitbucket ve a tu repositorio y pincha en la accin clonar, podrs
obtener un enlace con el comando necesario:
git clone https://usuario@bitbucket.org/cuenta/gpr.git

Clonar repositorio [con Git Bash en Windows]


Welcome to Git (version 1.9.4-preview20140815)
Run 'git help git' to display the help index.
Run 'git help <command>' to display help for specific commands.
Mario@HAL ~/repos/
$ cd repos
$ git clone https://magomar@bitbucket.org/magomar/gpr.git
Cloning into 'gpr'...
Password for 'https://magomar@bitbucket.org':
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

Crear contenido
Mario@HAL ~/repos/gpr (master)
$ cd gpr
$ echo Nombre y usuario de Bitbucket" >> participantes.txt
$ 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)

Aadir contenido al ndice


Mario@HAL ~/repos/gpr (master)
$ git add participantes.txt
warning: LF will be replaced by CRLF in participantes.txt.
The file will have its original line endings in your working directory.
$ git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: participantes.txt
master from origin.

Configurar Git

Antes de poder modificar el repositorio (mediante una confirmacin)


debemos configurar Git para indicarle la autora de los cambios
realizados:
$ git config --global user.name Nombre Apellido1 Apellido2"
$ git config --global user.email cuenta@dominio.upv.es"

La informacin de configuracin se guarda en el fichero .gitconfig en


el directorio home (por defecto ~/.gitconfig). Mas o menos contendr
esto:
[user]
name = Nombre Apellido1 Apellido2
email = cuenta@dominio.upv.es
[core]
autocrlf = true
excludesfile = \\gitignore_global.txt

Confirmar cambios en el ndice


Mario@HAL ~/repos/gpr (master)
$ git commit -m 'Confirmacin inicial con participantes.txt'
[master (root-commit) 5f7ca45] Confirmacin inicial con participantes.txt
warning: LF will be replaced by CRLF in participantes.txt.
The file will have its original line endings in your working directory.
1 file changed, 1 insertion(+)
create mode 100644 participantes.txt
$ git status
On branch master
Your branch is based on 'origin/master', but the upstream is gone.
(use "git branch --unset-upstream" to fixup)
nothing to commit, working directory clean

Subir confirmacin a repo remoto


Mario@HAL ~/repos/gpr (master)
$ git push -u origin master
Password for 'https://magomar@bitbucket.org':
Counting objects: 3, done.
Writing objects: 100% (3/3), 260 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://magomar@bitbucket.org/magomar/gpr.git
* [new branch]
master -> master
Branch master set up to track remote branch master from origin.

Revisar repositorio en bitbucket

Ves a bitbucket y realiza las siguientes comprobaciones


En resumen vers que tienes una sola rama, la rama principal o master
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.

Editar contenido previamente confirmado

Edita el archivo participantes.txt y aade el nombre de otro


integrante de tu equipo.
Comprueba el estado y vers que aparece como modificado

Mario@HAL ~/repos/gpr (master)


$ git status
On branch master
Your branch is up-to-date with 'origin/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: participantes.txt

Confirmar y subir a repo remoto

Nos quedara aadir al ndice y confirmar. Pero tambin podemos


haber ambas acciones con un nico comando: commit -a

Mario@HAL ~/repos/gpr (master)


$ git commit -a -m "Aade nombres al archivo participantes.txt"
warning: LF will be replaced by CRLF in participantes.txt.
The file will have its original line endings in your working directory.

Por ltimo subimos las nuevas confirmaciones al repositorio remoto

Mario@HAL ~/repos/gpr (master)


$ git push origin master
Password for 'https://magomar@bitbucket.org':
Counting objects: 5, done.

Explorar repositorio remoto

Ahora puedes explorar de nuevo el repositorio remoto en Bitbucket.


Consulta los siguientes apartados
Fuente: vers que slo aparece el archivo participantes.txt como un
enlace. Sin pinchas en l podrs visualizar su contenido (esto slo es
posible para archivos de texto, para binarios solo podremos
descargarlos).
Confirmaciones: vers que hay 2 confirmaciones

Histrico de confirmaciones

Explorando el contenido (fuente)

Comparando versiones (diferencias)

Edicin de contenidos en Bitbucket

Aadir contenido mltiple al 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.
Copia o mueve ese contenido a la carpeta raz de tu proyecto.
Adelo al ndice con usando el comando git add *
Confrmalo con el mensaje descripcion del caso de estudio
Actualiza el repositorio remoto para que contenga los ltimos
cambios confirmados.

Indexando contenido mltiple


Mario@HAL ~/repos/gpr (master)
$ git add *
Mario@HAL ~/repos/gpr (master)
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: caso_estudio/caso_estudio.md
new file: caso_estudio/media/administrador.png
new file: caso_estudio/media/conductor_ambulancia.png

Confirmando y subiendo al remoto


Mario@HAL ~/repos/gpr (master)
$ git commit -m "Aade descripcion del caso de estudio"
[master 81e0398] Aade descripcion del caso de estudio
8 files changed, 205 insertions(+)
create mode 100644 caso_estudio/caso_estudio.md
create mode 100644 caso_estudio/media/administrador.png

Mario@HAL ~/repos/gpr (master)


$ git push origin master
Password for 'https://magomar@bitbucket.org':
Counting objects: 13, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (12/12), done.
Writing objects: 100% (12/12), 100.78 KiB | 0 bytes/s, done.
Total 12 (delta 0), reused 0 (delta 0)
To https://magomar@bitbucket.org/magomar/gpr.git
a7c2b89..81e0398 master -> master

Seccin de contenido en Bitbucket

Edicin de contenido existente

4
5

Guardando los cambios

Historial de cambios
1

2
3

Actualizacin del repositorio local


Mario@HAL ~/repos/gpr (master)
$ git status
On branch master
Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
(use "git pull" to update your local branch)
nothing to commit, working directory clean
Mario@HAL ~/repos/gpr (master)
$ git pull --all
Fetching origin
Password for 'https://magomar@bitbucket.org':
Updating 81e0398..d8ab597
Fast-forward
caso_estudio/caso_estudio.md | 158 +++++++++++++++++++++++++++++++++++++++
+++1 file changed, 157 insertions(+), 1 deletion(-)

Вам также может понравиться