===== Control de versiones con Git y Bitbucket =====

{{ git_bitbucket.png?400 }}

Con el objetivo de que durante el curso podáis trabajar con la herramienta //git// utilizando //Bitbucket// como la plataforma para gestionar vuestros repositorios de código, os dejo aqui una serie de instrucciones muy básicas para comenzar a trabajar y realizar al menos las operaciones más esenciales.

==== Instalación de git ====

Lo primero que necesitaremos será instalar //git// en nuestro equipo. Podéis encontrarlo en [[http://www.git-scm.com|su página web]] y, siguiendo las instrucciones del siguiente video, podéis instalarlo sin mayor problema en Windows.

{{ youtube>IcHAKwakopQ }}
\\

Si utilizáis un Linux Debian o derivados podéis utilizar directamente ''apt'' para su instalación:

<code bash>
santi@zenbook:$ sudo apt-get install git
</code>

En cualquier caso no hay que olvidar que debemos configurar //git// antes de empezar a usarlo. Al menos deberemos configurar nuestra identidad, asignando un nombre y un email al equipo desde el que lo usaremos para identificarnos cada vez que sincronicemos nuestro repositorio local con el remoto (a parte de que además nos pida nuestras credenciales para conectarnos con Bitbucket)

<code bash>
santi@zenbook:$ git config --global user.name "Santiago Faci"
santi@zenbook:$ git config --global user.email "miemail@gmail.com"
</code>

También tenemos que tener en cuenta que siempre podremos comprobar esta y otras configuraciones en cualquier momento:

<code bash>
santi@zenbook:$ git config --list
user.name=Santiago Faci
user.email=miemail@gmail.com
. . .
. . .
</code>
==== Crear una cuenta en Bitbucket ====

El siguiente paso será crear una cuenta en Bitbucket para acceder a todos los servicios que está plataforma nos ofrece, tanto de gestión de repositorios para nuestros proyectos como de gestión de incidencias, Wiki, . . .

{{ youtube>Rwbtm6abXMM }}
\\

==== Crear un repositorio en Bitbucket ====

Una vez que tenemos una cuenta ya creada, podremos crear repositorios para nuestros proyectos.

En este caso, a modo de ejemplo, crearemos un repositorio remoto en Bitbucket y más adelante lo actualizaremos con un proyecto que hayamos iniciado en nuestro equipo (repositorio local)

Además, una vez creado el repositorio remoto en Bitbucket, en nuestro equipo marcaremos nuestro proyecto como un proyecto que será gestionado a través de git y lo configuraremos para que pueda ser gestionado a través de dicha herramienta y fijaremos como repositorio remoto con el que sincronizarse el que acabamos de crear en Bitbucket.

Marcamos el proyecto como un proyecto que será gestionado con git creando el repositorio local:

<code bash>
santi@zenbook:/miproyecto$ git init
</code>

Añadimos la URL del repositorio remoto con el que sincronizaremos nuestros cambios:

<code bash>
santi@zenbook:/miproyecto$ git remote add origin http://bitbucket.org/sfaci/miproyecto
</code>

Ahora ya tenemos nuestro repositorio local. Podemos continuar trabajando en el proyecto y seguir con el resto de comandos de esta parte cuando tengamos algo listo para subir al repositorio remoto, o bien podemos subir ya lo que tengamos listo en este momento.

Añadimos los cambios que queremos subir al repositorio remoto. En este caso añadimos todo lo que haya en la carpeta del proyecto. Otras veces quizás sólo queramos subir parte de lo que hemos desarrollado (una carpeta o simplemente algunos ficheros sueltos):

<code bash>
santi@zenbook:/miproyecto$ git add .
</code>

Marcamos esos cambios como listos para subir y añadimos el comentario para esta validación (''commit'')

<code bash>
santi@zenbook:/miproyecto$ git commit -m 'Subiendo los primeros cambios'
</code>

Subimos los cambios al repositorio remoto a la rama ''master'' (por ahora sólo trabajamos en esa rama directamente)

<code bash>
santi@zenbook:/miproyecto$ git push origin master
</code>

{{ youtube>90hNyo9F518 }}
\\
==== Subir un cambio en el proyecto al repositorio remoto ====

A medida que avancemos en el desarrollo de nuestra aplicación nos puede interesar ir subiendo algunos cambios al repositorio remoto. Lo podemos hacer en cualquier momento y además hay que tener en cuenta que no es necesario subir todo aquello que hayamos cambiado, sino que podemos añadir (''git add'') sólo aquellos cambios que nos interese.

{{ youtube>3s8HzY9sjIc }}
\\

==== Descargar un repositorio y actualizarlo ====

Por otra parte, también podemos necesitar acceder a un repositorio remoto ya creado para continuar a partir de ese trabajo ya realizado e ir subiendo nuevos cambios a medida que los realizemos. Para eso podemos //clonar// un repositorio remoto en nuestro equipo, realizar los cambios que vayamos necesitando y subir dichos cambios (a medida que nos interese) al repositorio remoto de donde clonamos inicialmente el proyecto.

{{ youtube>tBl-HEHUh5A }}
\\

==== Comprobar si hay cambios en el repositorio remoto ====

----

(c) 2017 Santiago Faci