La Guía Definitiva para iniciarse en GIT

Una de las claves a la hora de trabajar profesionalmente en desarrollo web es tener un entorno profesional que te permita sacar el máximo partido al trabajo en equipo y mediante el control de versiones del código fuente de nuestro proyecto web. Como expertos en desarrollo web, os queremos presentar GIT, la herramienta que os facilitará mucho vuestro flujo de trabajo. Pero, ¿qué es 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 estas tienen un gran número de archivos de código fuente. Wikipedia

Gracias a GIT podremos trabajar con total comodidad en equipo, tener copias de seguridad de nuestro proyectos gracias a los repositorios, proporciona una mejor auditoría de eventos de ramificación y fusión… Muchas posibilidades para mejorar nuestro flujo de trabajo, pero si no nos hemos enfrentado antes a ellas, pueden resultar un poco confusas de configurar. Para ello hemos elaborado esta pequeña guía que os iniciará en el mundo de GIT.

Comenzando a usar GIT

El primer paso para comenzar a utilizar GIT es darnos de alta en un cliente virtual. Para ello podremos acceder a Gitlab, Github, Bitbucket u otro sistema de los que hay disponibles en internet. Aunque su finalidad es la misma, existen pequeñas diferencias en los servicios que ofrecen. Podéis ver la comparativa entre estos 3 clientes en esta tabla .

Configurando el entorno

Una vez dado de alta en un cliente virtual, el siguiente paso es descargar un programa de gestión local que nos va a permitir comunicarnos con la herramienta remota. En principio, con usar la consola nos es más que suficiente para sacarle todo el jugo a GIT, pero bien es cierto que existen alternativas interesantes para que, de forma más visual, podamos usar todas las funcionalidades de este sistema. Nuestros expertos en desarrollo nos recomiendan Netbeans, el cual lo podréis descargar aquí y gracias a su sistema visual, podréis lograr todas las funcionalidades que más adelante explicaremos.

Dar de alta un repositorio en el cliente web

Dados de alta en el cliente e instalado el programa de gestión local, es hora de dar de alta un repositorio en el cliente web. Para dar de alta un repositorio nuevo nos vamos ha centrar en GitLab dadas las múltiples ventajas que ofrece para el flujo de trabajo.

Lo primero que tenemos que hacer es clicar en New proyect dentro de nuestro dashboard y nos encontraremos con una pantalla como la siguiente:
New Project GitLab
En ella tenemos la configuración del repositorio, pero no os preocupéis puesto que es muy sencillo de configurar.

Para comenzar pondremos un nombre al proyecto. En la segunda línea nos da las posibilidad de importar un proyecto de otros clientes virtuales, pero dejaremos esta opción sin marcar. En la descripción, aunque es opcional, conviene siempre definir que tipo de proyecto estamos creando. Y por último, podemos dar 3 niveles de permisos a nuestro proyecto en función de si queremos que sea público, solo para usuarios de Gitlab o solo para usuarios invitados. En nuestro caso, lo creamos como privado.

Una vez tenemos nuestro repositorio, nos aparecerá la información que ejecutaremos en línea de comandos para sincronizar nuestro repositorio local con el remoto.

Repositorio-en-git

Inicializar y sincronizar el repositorio local

En este punto se nos pueden dar dos casos. El primero de ellos es que en nuestro repositorio local ( nuestro ordenador ) no tengamos ningún archivo aún, es decir, algún compañero a empezado el proyecto y nosotros queremos unirnos a él. El otro caso es el contrario, que tengamos un proyecto local que queremos compartir con nuestros compañeros.

Si lo que queremos es unirnos a un repositorio, lo primero que tenemos que hacer es crear el ‘vínculo’ entre nosotros y el repositorio remoto. Para ello, abriendo nuestra consola teclearemos lo siguiente:

git clone : Nos conecta con el repositorio remoto para leer los datos que tiene como últimos. En este caso, nos creará una carpeta con todos los archivos que contenga.

Desde este momento ya tenemos cargados los últimos ficheros sincronizados en el servidor remoto y nuestro servidor local con GIT.

Si estamos en la segunda opción, que es la de compartir nuestro repositorio, lo que tenemos que conseguir es inicializar GIT para poder conectar los ficheros que tenemos con el repositorio. Para ello, utilizaremos la siguiente línea de comandos:

Accederemos mediante comandos a la carpeta destino y escribiremos git init. Este comando inicializa directamente un control en nuestro servidor local.

Lo que tenemos que hacer ahora es decirle a donde quiere que apunte, es decir, con que repositorio tiene que interactuar. Para ello, teclearemos lo siguiente git remote add origin . Desde este momento ya tenemos sincronizado nuestro ordenador con el repositorio remoto.

Ahora solo nos queda “empujar” todos los archivos que tenemos a dicho repositorio, para ello usaremos el comando git push -u origin master. En este caso le estamos diciendo que suba todo lo que hay actualmente en esta carpeta desde ‘origen’ a la rama ‘master’ de nuestro repositorio.

Flujo de Trabajo de Git

Tu repositorio local está compuesto por tres “árboles” administrados por git. El primero es tu Directorio de trabajo que contiene los archivos, el segundo es el Index que actúa como una zona intermedia, y el último es el HEAD que apunta al último commit realizado.

En el siguiente gráfico podéis entender a la perfección el flujo de trabajo de Git.

git-transport
Fuente

Funciones Básicas en Git.

Trabajando en nuestro Workspace, acumularemos X cambios, respecto a estructura, funcionalidad, estilo…Para registrar esos cambios y añadirlos al index usaremos git add <filename> donde filename es el nombre de los archivos que hemos modificado. Si lo que queremos es añadir todos los cambios que hemos hecho, usaremos el comando git add .

Este es el primer paso en el flujo de trabajo básico. Para hacer commit a estos cambios usa git commit -m “Commit message”. En Commit message puedes escribir un mensaje, normalmente se usa para poder especificar qué cambios se han realizado en el último commit.

Ahora el archivo está incluído en el HEAD, pero aún no en tu repositorio remoto, por lo que para incluir estos archivos en nuestro repositorio remoto debemos enviar esos archivos. Para enviar todos los cambios que se encuentran en local repository, debemos ejecutar git push origin master, donde master corresponde a la rama de trabajo en la que nos encontramos, si nos encontramos en otra rama, por ejemplo desarrollo, nuestro comando sería git push origin desarrollo.

Sistema de Ramas

Como si de un árbol se tratase, git basa su funcionamiento en ramas, utilizadas para desarrollar funcionalidades distintas unas de otras, es decir, en nuestro flujo de trabajo podemos desarrollar las distintas partes de nuestro proyecto en distintas ramas que convergen en un punto que fusionamos para obtener el proyecto final. Por defecto Git crea la rama master, pero podemos crear tantas ramas como necesitemos y poder fusionarlas a la rama principal cuando terminemos.

Para crear una nueva rama y saltar a ella usa git checkout -b ramanueva

Para volver a la rama principal git checkout master

Para borrar la rama git branch -d ramanueva

recuerda que si trabajas en equipo, una rama no estará disponible para los demás a no ser que la subas a el repositorio remoto, para ello usa git push origin

Actualizar y fusionar ramas

Si trabajamos en equipo y otros desarrolladores se encuentran haciendo “push”, necesitaremos “bajar” esas versiones, para ello necesitamos actualizar nuestro repositorio local al commit más nuevo, usamos git pull para poder actualizar y fusionar los últimos cambios en remoto.

Si lo que deseamos es fusionar una rama a nuestra rama activa ( en la que nos encontramos trabajando), necesitaremos usar git merge para poder fusionar las ramas. Git automáticamente fusionará los cambios realizados, pero puede darse la casuística de que hayamos trabajado en la misma línea de código que otros desarrolladores, apareciendo los famosos conflictos, que git te mostrará y bajo los que tendrás un total control, permitiendo eliminar el código duplicado o fusionarlo, siempre manualmente.

Una vez fusionados, necesitamos marcarlos y actualizar mediante git add y git push.

Antes de fusionar los cambios podemos revisarlos usando git diff <source_branch><target_branch>

Reemplazar cambios locales

Puede ser que durante el desarrollo de nuestro proyecto, hagamos algo indebido. Pero gracias al comando git checkout –<filename> podremos reemplazar cambios locales, permitiendo recuperar el último contenido.

Si quisiéramos acceder a la última versión del servidor, deshaciendonos de todos los cambios locales y commits usamos git fetch origin / git reset –hard origin/master.

Ya no hay escusas para usar GIT en vuestro día a día. Si tenéis alguna duda, no dudéis en consultarnos.

¿Te ha gustado el artículo?
1 Star2 Stars3 Stars4 Stars5 Stars (1 votos, promedio: 5,00 sobre 5)
Loading...
Artículo escrito por

¡Exprésate! Dejanos tu comentario

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



Aún no hay comentarios en esta entrada. ¿Te animas?