llámanos ahora
Barcelona: 931 88 05 70
Madrid: 910 05 21 75
Español | English

Git: Primeros pasos. Parte I

por

Post publicado en Programación

git primeros pasos

Git es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando éstas tienen un gran número de archivos de código fuente. Fuente: Wikipedia.

Cuando se desarrolla un proyecto de código fuente (PHP, CSS, Java, etc.), a pocos ficheros o líneas de código que contenga, se hace necesario llevar un registro de los cambios realizados, especialmente si colaboran varios programadores simultáneamente. Ya sea como herramienta para medir el trabajo realizado, una manera de volver atrás si fuera necesario o como una forma de documentar los fallos corregidos, el software de control versiones nos permitirá gestionar la evolución del proyecto durante toda su vida útil.

Para este cometido hay varios software disponibles. Algunos de los más usados son CVS, Subversion, Git, Mercurial… Nosotros nos centraremos en Git por ser el más popular, y contar con múltiples herramientas y repositorios online gratuitos, aunque muchas de las funcionalidades de las que hablaremos, son iguales o se pueden extrapolar fácilmente a otros sistemas. Para operar con Git existen múltiples interfaces visuales (o Sistemas de Control de Versiones: VCS). Para nuestro propósito usaremos SourceTree, un software gratuito y bastante popular, con versiones para Mac y Windows (enlace de descarga).

Pero empecemos por el principio.

¿Qué nos ofrece Git?

Sin entrar en detalle, podemos destacar estas características principales:

  • Anotar y comparar los cambios de código, línea a línea.
  • Restablecer ficheros o todo el proyecto a cómo estaba en un momento concreto de su historial.
  • Sincronizar nuestro nuestro código con los cambios que haya realizado otra persona y viceversa.
  • Resolver conflictos cuando se realizan cambios contradictorios.
  • Mantener uno o más repositorios de código.
  • Establecer flujos de trabajo a modo de ramas paralelas e independientes.

Git: El flujo de trabajo

Un repositorio es un lugar donde se almacena código fuente, ya sea local (en el espacio de trabajo del usuario) o remoto (en la nube). Git, aparte del repositorio local, permite trabajar con múltiples repositorios remotos.

En el ejemplo más sencillo, solamente trabajaremos con uno local, que será el directorio raíz donde se encuentran los ficheros fuente del proyecto. En un directorio oculto, se guardará toda la información relacionada con los cambios que hagamos.

Si se trabaja en colaboración con otros desarrolladores, se añadirá, además, un repositorio remoto común. En este caso, los usuarios trabajarán en sus repositorios locales y, una vez finalizados los cambios necesarios, los publicarán en el repositorio remoto, para que los demás los integren en sus respectivos repositorios locales. Éste es el flujo de trabajo normal en el sistema de control de versiones Git.

git primeros pasos repositorio remoto

  • El usuario 1 realiza los cambios necesarios en su código fuente. En el proceso, los anota tantas veces como quiera en su repositorio local. Cuando finaliza su tarea, envía los cambios al repositorio remoto común.
  • El usuario 2 descarga los cambios del repositorio común y los integra en su repositorio local.
  • El usuario 2 anota en su repositorio local los cambios que realice, y cuando esté listo, los envía de vuelta al repositorio remoto, y el proceso vuelve a empezar.

Creando el primer repositorio con Git.

Ahora que empezamos a saber cómo funciona todo esto, qué mejor que ponernos manos a la obra y probar un caso práctico.

Para esto, descargaremos la aplicación SourceTree, arriba enlazada, y la ejecutaremos. Se abrirá una ventana con el listado de repositorios que tengamos; pulsaremos en “Nuevo repositorio” y luego en “Crear un repositorio local”

git primeros pasos nuevo repositorio

A continuación escogemos el directorio donde se encuentra nuestro proyecto de código y pulsamos “Crear”

git primeros pasos ruta destino

Ya está. ¿Fácil, no?

En este caso he seleccionado un directorio con 2 ficheros (index.html y style.css) que corresponden a una página web. Se puede probar con proyectos de cualquier tamaño, pero mi consejo es comenzar con uno pequeño. También se podría en este momento crear uno nuevo.

Hecho esto, nuestro repositorio se mostrará en la ventana de listado.

git primeros pasos mi proyecto

El indicador nos muestra que hay 2 ficheros con cambios que aún no han sido anotados (añadidos al control de versiones). Esto es normal ya que se acaba de crear el repositorio y cualquier gestión sobre éste se debe realizar de manera expresa, ya sea para añadir, modificar o eliminar un fichero.

Anotando los cambios en el repositorio

Abramos nuestro repositorio recién creado. Para ello haremos doble click sobre él en el listado.

git primeros pasos index

Ésta es la ventana de trabajo de nuestro proyecto. Desde aquí realizaremos todas las operaciones necesarias.

El primer paso es anotar los dos ficheros “nuevos” en nuestro repositorio local. Los seleccionamos de la lista de “ficheros no preparados” para que pasen a la lista de arriba “ficheros preparados”. Un icono mostrará si el fichero se añadirá (nuestro caso), se eliminará, o si modificará una versión previa del mismo.

git primeros pasos index

En el panel de la derecha podemos ver las diferencias respecto a la última anotación. Al ser la primera, no hay ningún cambio.

El siguiente paso es escribir, en la caja de texto de la parte inferior de la ventana, un mensaje descriptivo de los cambios realizados. Al ser ésta nuestra primera anotación podemos poner simplemente “Anotación inicial”. Aparecerá un botón en la parte inferior derecha, “Anotar”, que pulsaremos. ¡Listo!

git primeros pasos anotacion inicial

Ahora nuestro código ya se ha sido añadido al control de versiones y cualquier modificación que se realice podremos verla, revertirla, etc.

Vamos a probarlo realizando unos cambios. En este ejemplo, moveré el fichero style.css a una carpeta “assets” para estructurar mejor el proyecto, y también adaptaré index.html para enlazar correctamente a style.css. De paso añadiré una imagen de fondo y cambiaré el color de la web.

git primeros pasos restauracion

Consejo: cuanto más a menudo se anoten los cambios, más detalle de la evolución del proyecto se tendrá.

En todo momento, desde el apartado “Historial” se pueden ver los cambios realizados en el código fuente. Por ejemplo, podemos ver qué ha cambiado en el fichero style.css respecto a la anotación anterior, simplemente seleccionándolo.

git primeros pasos historial style

También vemos el resto de ficheros que estuvieron implicados en la esta anotación, con iconos representando el tipo de cambio realizado

Probemos otro cambio. Ahora cambiaré la imagen de fondo por una nueva, borraré la antigua y anotaré los cambios. El historial quedará así:

git primeros pasos master

Pero pasa el tiempo y resulta que ya no estoy seguro de si éste fue un buen cambio o no, y me gustaría poder volver al punto anterior. ¡Nada más fácil! Tan solo hay que hacer doble click sobre la anotación que queramos. Automáticamente todos nuestros ficheros cambiarán a como estaban en ese momento. Para volver de nuevo a la última anotación, tan solo hay que volver a hacer doble click sobre ella.

Revirtiendo los cambios realizados

Hay varios casos en los que nos puede interesar cancelar los cambios realizados. Si aún no se ha anotado un cambio y simplemente se quiere dejar un fichero tal y como estaba en la última anotación, tan sólo hay que seleccionarlo de la lista de “Ficheros no preparados”, pulsar botón derecho y elegir “Restablecer”.

Si lo que se quiere es descartar una o varias anotaciones, de manera que el proyecto entero quede tal y como estaba en un momento del historial, también podemos hacerlo. Para ello hay que hacer click derecho sobre la anotación seleccionada en el historial y pulsar en “restablecer master a este commit” (más adelante veremos a qué hace referencia “master”. Commit es simplemente la palabra inglesa para “anotación”). Cuando nos pregunte el modo, seleccionaremos “Fuerte”. Ojo, este cambio es irreversible. Hazlo sólo si estás totalmente seguro.

Aunque lo más habitual es que se necesite restablecer uno o varios ficheros a una anotación concreta, pero sin descartar los cambios realizados en el resto de archivos en anotaciones posteriores. Para ello simplemente seleccionaremos del historial una anotación en la que el fichero estuviera tal y como queremos. A continuación seleccionaremos también el fichero implicado, pulsaremos con el botón derecho y a continuación “Restablecer a la anotación”.

git primeros pasos restablecer anotacion

Lo que esto hará es modificar el fichero para dejarlo tal y como estaba en ese momento del historial, como si lo hubiéramos modificado nosotros mismos. Por lo tanto, después de esto, el fichero se mostrará en la lista de ficheros no preparados, y deberemos anotarlo (o restablecerlo, como explicaba antes)

Con esto hemos visto lo básico para empezar a usar el control de versiones en nuestros proyectos. En la próxima entrada nos centraremos en el uso de las ramas, donde veremos la potencia real de Git. Si te has fijado, habrás visto la palabra “master” en más de una ocasión. Ésta es la rama principal y por defecto de un repositorio Git, pero usaremos más.

¡Hasta la próxima entrada!

¿Te ha gustado el post?
Compártelo en tu red social.

Leave a Reply

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

comparte este post
Git: Primeros pasos. Parte I