Código - 21.08.2017

Git – Herramienta de control de versiones

Un sistema que facilita en control y administración de proyectos

 

Git es un sistema de control de versiones distributivo y es ahora la herramienta más usada actualmente por los programadores en el desarrollo de aplicaciones, webs, softwares, sistemas informáticos y más.

Pero se preguntaran, cómo funciona? Y que lo hace tan útil?

Suponga que tiene almacenado en su máquina una carpeta de especial importancia, al cual le llamaremos proyecto. Este proyecto puede contener uno o más archivos de cualquier tipo (por ejemplo, el código fuente de una aplicación, un libro, un reporte de investigación, etc.). Cada vez que se realiza algún cambio en el proyecto (como la adición, el borrado o la edición de algún archivo contenido en el proyecto) se genera una nueva versión del mismo.

Un Sistema de Control de Versiones permite administrar el historial de versiones generadas en un proyecto determinado, de tal forma que éste se pueda consultar, así como para restaurar el proyecto a una versión anterior (por ejemplo, al introducir errores en una aplicación). Al conjunto de versiones generadas se le conoce como repositorio del proyecto.

Entre sus principales características se encuentran las siguientes:

-Permite diversos métodos de desarrollo.

-Sistema de ramificaciones eficiente.

-Sistema de hooks.

-No requiere una conexión permanente a Internet.

-Es relativamente fácil de instalar en los principales SO.

-Tiene una gran cantidad de configuraciones disponibles.

-Permite compartir repositorios mediante diversos protocolos.

-Permite el uso de alias para los comandos.

-Su código está disponible para cualquier modificación deseada.

Existen interfaces gráficas (GUI) y por línea de comandos (CLI) para Git; no obstante a lo largo del libro se utilizará ésta última, principalmente porque las interfaces gráficas son mucho más lentas, y los comandos de Git no son tan complicados; en pocas palabras, en general es más eficiente trabajar con Git desde CLI. De hecho, la instalación de Git para Windows contiene la línea de comandos bash.

Linea de desarrollo de un proyecto en Git.

Instalación

Git está disponible en los principales SO (Sistemas Operativos). En el sitio oficial de Git hay una guía al respecto en https:\/\/git-scm.com\/book\/en\/v2\/Getting-Started-Installing-Git 2 .

Configuración inicial

Ya teniendo git instalado y antes de comenzar con un proyecto debes realizar la configuración inicial.

Para ello se utiliza el comando git config , que tiene la siguiente sintaxis:

git config [alcance]

Lo primero será decir nuestro nombre y nuestro correo, para que los cambios que realicemos se relacionen con nosotros.

git config --global user.name “Nombre Apellido”
git config --global user.email tucorreo@tucorreo.com

Esto almacenará los datos en la configuración del usuario, para almacenarlos en la configuración del sistema o en la del repositorio basta con sustituir el –global por –system o –local respectivamente.

Principales comandos en git

Iniciar un repositorio vacío en una carpeta específica.

git init

Añadir un archivo específico.

git add “nombre_de_archivo”

Añadir todos los archivos del directorio

git add .

Confirmar los cambios realizados. El “mensaje” generalmente se usa para asociar al commit una breve descripción de los cambios realizados.

git commit –m “mensaje”

Revertir el commit identificado por “hash_commit”

git revert “hash_commit"

Subir la rama(branch) “nombre_rama” al servidor remoto.

git push origin “nombre rama”

Mostrar el estado actual de la rama(branch), como los cambios que hay sin hacer commit.

git status

Consultar el historial de commits o modificaciones

git log

Descargar una copia de un repositorio existente

git clone link

Crear nueva rama

git branch <nombre de la rama>

Moverse entre ramas y subir cambios en estos

git checkout <nombre de la rama>

Combinando ramas

git checkout <rama-padre>
git merge <rama-hija>

Para bajar

git pull link

Para bajar cambios realizados en el repositorio por otros usuarios y actualizar repositorio local:

git fetch origin
git merge origin/master

GitHub es una plataforma en línea para alojar proyectos utilizando el sistema de control de versiones Git. El código se almacena de forma pública, aunque también se puede hacer de forma privada, creando una cuenta de pago.

Que git sea distribuido quiere decir que está preparado para poder trabajar en equipos distribuidos (es decir, cada uno en su casa) de forma eficiente. Imagínence dos usuarios, uno en España y otro en Rusia ¿Cómo hacen para coordinarse? ¿Cómo saben qué código hizo uno u otro y viceversa?.

Este problema git lo resuelve con herramientas un poco complicadas de configurar si no tienes la experiencia y conocimientos adecuados (Servidores SSH, claves públicas y privadas, etc). Si eres administrador de sistemas y tienes tu propio servidor, no tardarías mucho en hacerlo. En caso contrario, Github te facilita toda la infraestructura para trabajar en equipos distribuidos a través de una interfaz web más cómoda.

¿Me interesa usar github si trabajo yo sólo? claro, por la sencilla razón de que si tienes una copia de tu código fuente en github, tienes un backup de todo el proyecto completo. Ese backup incluye no sólo el código que tienes ahora sino también de todo el historial de modificaciones que el código ha sufrido desde el primer día. Esta copia la puedes recuperar en cualquier momento y continuar trabajando desde cualquier ordenador como si nada.

Asi como github excisten otros similares como gitlab, Bitbucket y otros.
En definitiva git es una herramienta muy útil y diversificada para los desarrolladores, adaptada a las necesidades de la actualidad, con múltiples beneficios en el desarrollo de proyectos.

Artículos Relacionados