Una de las tecnologías para coordinar esfuerzos, respaldar trabajos e integrar soluciones es Git. Con esta tecnología podemos crear repositorios comunes donde se almacenan los archivos y un historial de cambios y sus responsables, dándonos así la posibilidad de tener una base central con todas las colaboraciones para ver los avances de los proyectos.
Instalación en Linux
La instalación en Linux es muy sencilla, si tenemos un poco de experiencia con esta plataforma sabemos que debemos ubicar nuestros programas a través de repositorios, donde con comandos como el apt-get de Debian/Ubuntu podemos conseguir una instalación rápida y limpia.
Veamos los componentes que debemos instalar para poner a funcionar Git en Linux:
1- En primer lugar debemos abrir una ventana de la consola de comandos y también debemos tener el acceso al usuario root.
2- Luego vamos a escribir los siguientes comandos:
sudo apt-get install git git-doc gitweb git-gui gitk git-email git-svn
3- Los comandos anteriores nos van a descargar una cantidad de archivos que una vez instalados nos darán acceso a Git, por lo que luego para confirmar que todo esté en orden solo debemos colocar en nuestra consola el siguiente comando y veremos que versión de Git estamos corriendo.
git version
Instalación en Windows
La instalación en Windows es un poco más sencilla que la de Debian/Ubuntu, ya que simplemente debemos descargar un archivo instalador y una vez concluido el proceso tendremos el servicio instalado en nuestro equipo.
Debemos buscar el paquete instalador con la última versión en la página oficial, esta última nos descargará un archivo que debemos instalar:
El proceso de instalación es como cualquier otro en Windows, básicamente solo debemos hacer click en siguiente seleccionando las opciones que nos interesen, al final obtendremos Git, una consola SSH con la cual podemos interactuar con nuestra herramienta y una interfaz gráfica que nos permitirá hacer algunas de las acciones más comunes del mismo, veamos en la siguiente imagen las aplicaciones instaladas:
Servicios en la nube
Antes de continuar con elementos técnicos, hay un punto que es muy importante conocer, Git trabaja de forma local, es decir, todos los cambios y el historial se mantiene en el equipo donde se encuentra el repositorio original. Para poder compartir en un equipo debemos tener un servidor, es decir, un equipo remoto al cual todos podamos conectarnos para poder manejar los diferentes cambios.
Aunque podemos hacerlo en un equipo de la red local, existe la posibilidad de manejar nuestros repositorios en la nube, para ello podemos utilizar diferentes servicios, sin embargo existen dos muy populares los cuales están enfocados a diferentes targets del mercado.
GitHub
El primero de ellos es GitHub, que además de ofrecernos la posibilidad de almacenar nuestros repositorios en la nube, es una de las comunidades de desarrolladores más grandes del mundo, al menos del mundo occidental conocido.
El problema es que la versión gratuita solo nos permite tener repositorios públicos por lo que tal vez no tengamos suficiente privacidad en nuestros proyectos. Si queremos privacidad debemos hacer uso del servicio y planes pagos que ofrecen.
Bitbucket
El segundo es Bitbucket, no es tan popular como GitHub, sin embargo es muy útil, tiene también una versión gratuita, pero la diferencia es que no es una comunidad abierta, por lo que podremos tener repositorios privados y públicos, adicionalmente en la versión gratuita podemos tener hasta 5 usuarios por repositorio creado.
También tenemos acceso a un servicio pago que nos permite extender equipos de trabajo y tener mayor capacidad de almacenamiento, este servicio es ideal para startups que deseen mantener el secreto de su producto y disfrutar de las ventajas de la nube.
Ambos servicios deben ser considerados al utilizar la tecnología Git ya que nos permiten trabajar desde locaciones remotas e inclusive en diferentes partes del mundo, de esta forma brindándonos la ventaja de siempre tener un respaldo de nuestro código.
Creando un repositorio
Ya que conocemos lo más básico de Git, que es como instalarlo y los servicios en la nube que podemos utilizar, vamos ahora a la parte práctica del tutorial, a la creación de repositorios.
Hemos hablado mucho de la palabra repositorio pero no la hemos definido formalmente, veamos:
Ahora tenemos un concepto nuevo las ramas o branches, no son más que secciones dentro del repositorio donde podemos hacer cambios que no afecten a otras ramas, por ejemplo si tenemos una rama principal (normalmente llamada Master), y queremos introducir unos cambios experimentales, para no afectar a dicha rama principal creamos una nueva que llamamos Desarrollo, dentro de Desarrollo todos los cambios que hagamos no se harán sobre el código de Master a menos que las fusionemos.
Cada cambio que hagamos y que aceptemos tendrá un número de control y un comentario del desarrollador, con ello podremos llevar la traza del historial, sabiendo que archivos cambiaron, quien hizo el cambio y que fue cambiado dentro del archivo.
Para crear un repositorio simplemente debemos crear una carpeta y en la consola de comandos escribir lo siguiente:
git init
Esto hará que Git empiece a llevar los cambios que ocurran dentro de la carptea, automáticamente nos creará un branch o rama Master, sin embargo podemos crear todas las ramas que creamos necesarias, usualmente se crea una por desarrollador o una por equipo, esto dependiendo de nuestro estilo de trabajo, es importante mencionar que cada programador a nivel local podrá crear más ramas aún en su equipo.
Vemos en la imagen como hemos creado la carpeta, luego dentro de ella hemos inicializado el repositorio, para ayudar a detectar mejor la forma en la que trabaja Git hemos cometido un error al colocar el comando, así vemos que Git nos ofrece los errores y sugerencias para corregirlos, haciendo gala de su gran documentación.
Otra forma de crear un repositorio es clonando un repositorio existente, usualmente los podemos conseguir en GitHub, para lograrlo debemos hacer uso del comando git clone seguido de la ruta del repositorio, esta puede ser local o remota, vamos a utilizar como ejemplo el repositorio del popular framework Javascript llamado Angular JS de Google:
Creando los branches y commit inicial
Luego de crear nuestro repositorio o haberlo clonado es importante que aprendamos a crear las ramas o branch, para hacerlo debemos utilizar el siguiente comando:
git checkout -b nombredelbranch
Con ello vamos a generar una copia del branch desde el cual estamos creando el nuevo espacio de trabajo, inmediatamente haremos el cambio al nuevo branch, con ello ya podemos empezar a hacer cambios sin afectar otros branches. Es importante no solo saber crear el branch sino también ver en que branch estamos, para realizar esta acción solo sólo debemos utilizar el siguiente comando:
git branch
Una vez que tenemos nuestro branch creado solo debemos hacer nuestro commit inicial y ya podremos empezar a utilizar la herramienta en esa carpeta:
Añadiendo los archivos
Ya con nuestro repositorio creado y totalmente funcional podemos empezar a trabajar con el mismo y esto se resume a añadir los archivos de nuestro proyecto, esto significa que cada vez que creemos un archivos debemos añadirlo a nuestro tracking de repositorio, para ello utilizamos el comando add:
git add nombredelarchivo
Esto lo hacemos para un solo archivo, en el caso que deseemos agregar más de uno podemos utilizar el punto ( . ) para añadir todo.
Para añadir definitivamente los cambios utilizamos el comando commit junto con un comentario relevante al mismo:
git commit -m”comentario”
Por último con el comando merge fusionamos las ramas o branches para añadir los otros cambios realizados:
git merge nombredelbranch
Con esto damos por finalizado este tutorial, hemos aprendido a crear un repositorio en Git y también a utilizar los comandos más básicos para hacer que nuestro proyecto funcione, la clave para dominar Git es leer su documentación y practicar bastante, ya que como todo es prácticamente un lenguaje nuevo, sin embargo si llegamos a dominarle podremos mejorar nuestros entornos de desarrollo en equipo de forma significativa.