¡Oh my git! – Bienvenidos al Control de Versiones

¡Bienvenidos un día más a un nuevo rootie queridos amigos! En esta nueva entrada vamos a hablar sobre Control de Versiones, en particular vamos a hablar de git una herramienta que, desde mi punto de vista, hoy por hoy es totalmente imprescindible, tanto cuando se trabaja en equipo como cuando estás trabajando en tus propios proyectos.

Control de Versiones

Antes de ver qué es lo que puede hacer git por nosotros, veamos un poco qué es el control de versiones:

Se llama control de versiones a la gestión de los diversos cambios que se realizan sobre los elementos de algún producto o una configuración del mismo. Una versión, revisión o edición de un producto, es el estado en el que se encuentra el mismo en un momento dado de su desarrollo o modificación. – Wikipedia

la-viejal-visillo
Ay! ese código te va a dar conflicto, te lo digo yo.

Básicamente el control de versiones es como la vieja’l visillo, sabe todo lo que hacemos y nos lo puede contar en cualquier momento. Hablando en serio, el control de versiones, cuando lo ponemos en práctica en un proyecto de desarrollo (web, software, etc) nos ayuda a llevar un registro de cambios realizados sobre el código fuente de nuestro proyecto. Además los cambios realizados se guardan con un identificador único y asociados al usuario que los realizó, con lo que revisar el código cuando se trabaja en equipo es mucho más sencillo.

Para trabajar con control de versiones, actualmente existen diferentes herramientas y soluciones, entre las más extendidas tenemos Subversion (SVN) y Git. Aunque poco a poco, se va viendo menos Subversion y más Git ¡lo cual es sin duda una gran noticia!

repos-nostalgicos-git-svn-control-de-versiones
Aunque siempre hay alternativas a SVN o Git…

Git & GitHub (¡tus nuevos mejores amigos! O no…)

Cuando hablamos de control de versiones (open source ¡por supuesto!) Git es posiblemente el más famoso, y gracias a GitHub prácticamente no se necesita casi nada para empezar a utilizarlo.

¡Pero claro, yo aquí hablando y hablando y aun no he explicado nada! Así que vayamos por partes:

Git:

Aunque ya he explicado lo que es un control de versiones a grosso modo creo que es muy importante explicar cuáles son las diferencias entre Git y el resto de sistemas, ya que estas diferencias es lo que lo hace ser, posiblemente, el mejor de todos:*

  • Instantáneas, no diferencias: Al contrario que muchos sistemas de control de versiones, Git modela sus datos más como un conjunto de instantáneas de un mini sistema de archivos. Cada vez que confirmas un cambio, o guardas el estado de tu proyecto en Git, él básicamente hace una foto del aspecto de todos tus archivos en ese momento, y guarda una referencia a esa instantánea.
  • Casi cualquier operación es local: La mayoría de las operaciones en Git sólo necesitan archivos y recursos locales para operar. Por lo general no se necesita información de ningún otro ordenador de tu red. Por ejemplo, para navegar por la historia del proyecto, Git no necesita salir al servidor para obtener la historia y mostrarla, simplemente la lee directamente de tu base de datos local.
  • Git tiene integridad: Todo en Git es verificado mediante una suma de comprobación (checksum en inglés) antes de ser almacenado, y es identificado a partir de ese momento mediante dicha suma. Esto significa que es imposible cambiar los contenidos de cualquier archivo o directorio sin que Git lo sepa.
  • Git generalmente sólo añade información: Cuando realizas acciones en Git, casi todas ellas sólo añaden información a la base de datos de Git. Es muy difícil conseguir que el sistema haga algo que no se pueda deshacer, o que de algún modo borre información.
  • Los tres estados: Git tiene tres estados principales en los que se pueden encontrar tus archivos: confirmado (committed), modificado (modified), y preparado (staged). Confirmado significa que los datos están almacenados de manera segura en tu base de datos local. Modificado significa que has modificado el archivo pero todavía no lo has confirmado a tu base de datos. Preparado significa que has marcado un archivo modificado en su versión actual para que vaya en tu próxima confirmación.

Github:

GitHub es una plataforma de desarrollo colaborativo de software para alojar proyectos utilizando el sistema de control de versiones Git. En su versión gratuita, ofrece repositorios públicos ilimitados, esto quiere decir que todo tu código será visible por cualquier persona, aunque también ofrece un servicio de pago para poder crear repositorios privados. También ofrece más herramientas, pero estas, las veremos otro día.

Configuración

Para empezar a usar Git, tenemos varias opciones, dependiendo de nuestro sistema operativo.

Instalando Git en Unix.

Si de normal trabajamos en un entorno de Linux (Debian/Ubuntu/CentOS, etc…) instalar git es realmente sencillo, simplemente se ha de ejecutar uno de los siguientes comandos (dependiendo de tu gestor de paquetes)

Para distros basadas en Debian, como Ubuntu que usan Aptitude:

O si usas CentOS, Fedora con Yum:

Instalando Git en Mac.

Para instalar git en Mac hay varias formas, pero la más sencilla es instalando las herramientas de línea de comandos XCode. Si tienes Mavericks (10.9) o superior, puedes probar a ejecutar git en la terminal y si no lo tienes instalado, te aparecerá un mensaje para instalarlo.

Instalando Git en Windows.

La instalación en Windows consiste en bajarse el instalador del siguiente enlace y seguir los pasos.

git-aragorn-linux.
Parece que Aragorn, otra vez se ha equivocado.

Una vez hayas terminado la instalación de git, para comprobar que funciona, en el terminal (o en el sucedáneo que te dan en Windows) solo tenéis que usar el comando git y deberías ver algo así:

Como podéis ver, es la ayuda 😀

Bueno ahora que ya hemos instalado git (e intuyo que os habréis creado una cuenta en GitHub y si no, ya sabéis) podemos empezar a ver lo más básico y normalmente el primer paso para trabajar con Git y GitHub.

Creando nuestro primer repo.

Como he mencionado antes, GitHub nos ofrece un servicio para almacenar nuestros proyectos, así que lo primero que tenemos que hacer es crear un repositorio.

Para ello accedemos a nuestra cuenta en GitHub y a la derecha podremos ver el botón «New Repository», que nos llevará a la página para crear el repositorio:

github-nuevo-repositorio

 

En la foto se puede ver las diferentes opciones para crear un nuevo repositorio, la única opción realmente obligatoria es el nombre del repositorio, lo demás es opcional, con lo que una vez completado este paso, tendremos nuestro repositorio creado y esperando para empezar a trabajar.

Por ahora, lo vamos a dejar aquí, estimados rooters, porque se está quedando un post muy largo y no quiero que os aburráis mientras aprendéis, así que veremos los comandos básicos de git en la próxima entrada!

* Los textos de las diferencias de Git han sido extraídos íntegramente de https://git-scm.com/book/es/v1/Empezando-Fundamentos-de-Git con el propósito de transmitir fielmente las características de Git.

One Comment

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *