Programación

Por qué deberías usar Git como sistema de control de versiones

Seguramente, como visitante de esta página, estarás acostumbrado a programar y a trabajar en algunos proyectos más o menos extensos, ¿pero lo estás también a usar un sistema de control de versiones?. Es muy posible que la respuesta a esta pregunta sea que no.

¿Qué es un sistema de control de versiones?

Un sistema de control de versiones es un software que permite mantener un histórico de las distintas versiones de un desarrollo. Este sistema básicamente y a grandes rasgos, consiste en almacenar copias de los ficheros que contienen el código fuente del proyecto en cada uno de sus estados. Esto permite tener siempre a mano el código fuente disponible de un programa, en cada una de sus versiones y/o en una fecha concreta.

Ventajas del uso de un sistema de control de versiones

Utilizar un sistema de control de versiones tiene, entre otras, las siguientes ventajas:

  • Permite mantener un histórico de todo el desarrollo del proyecto.
  • Añade trazabilidad al desarrollo de software, ya que se puede ver qué cambios se han hecho en el código en cada versión.
  • Muestra mucha información estadística de cómo se está desarrollando el proyecto (principales autores, número de versiones, cambios, etc.).
  • Facilita mucho el trabajo en equipo.
  • Permite desarrollar varias versiones de un mismo programa a la vez.

Inconvenientes del uso de un sistema de control de versiones

Los principales inconvenientes del uso de un sistema de control de versiones son:

  • Presentan una curva de aprendizaje un poco elevada.
  • Sólo se aprovechan de manera completa si se tiene este sistema en un servidor siempre disponible.
  • Su uso sin interfaz gráfica puede resultar bastante complejo.

 

Como puedes ver, las ventajas superan ampliamente a las desventajas, pero todavía hay en muchas organizaciones que no se utilizan. Esto es debido, en muchos casos, a que sus empleados no están formados en el uso de estas herramientas. Por ejemplo, en mi universidad no se enseña a usarlos y en los grados de formación profesional que conozco, tampoco.

El control de versiones con Git

En el mercado hay varios sistemas de control de versiones: SVN, el cual está cayendo en desuso, TFVC, el sistema propietario de Microsoft y cada día menos popular, y git. Git es un sistema de control de versiones distribuido creado por Linus Torvalds y que actualmente es usado en la gran mayoría de grandes desarrollos, como el del kernel de Linux, o el sistema operativo Windows.

Una aclaración importante es que Git no es lo mismo que GitHub, es posible que te suene más este segundo nombre que el primero. GitHub es una empresa que provee soluciones para albergar tu código fuente utilizando el sistema de control de versiones git. Debido a la gratituidad de sus repositorios públicos, se ha convertido en uno de los principales puntos de encuentro de desarrolladores, donde encontrar la gran mayoría del código de los proyectos Open Source. Actualmente, otras empresas como BitBucket o GitLab ofrecen sistemas similares.

Recursos para aprender a usar Git

En la red existen multitud de recursos para aprender a usar Git como sistema de control de versiones, aquí te dejo mis recomendaciones:

  • En primer lugar, te recomendaría usar un cliente con interfaz gráfica, por ejemplo SourceTree, ya que al principio se vuelve bastante complejo.
  • Utiliza el siguiente recurso para aprender los conceptos básicos de Git.
  • Lee esta entrada para conocer una forma sencilla de utilizar Git en el día a día.
  • Realiza este tutorial paso a paso, como punto de entrada al uso de Git.
  • Usa esta guía como referencia para crear tus ramas con Git, para ello te puedes apoyar en este proyecto.
  • Utilizar Git Aware terminal para trabajar con Git en línea de comandos
  • Finalmente, te recomendaría leer esta serie de artículos para entender en profundidad como funciona Git.

La mejor manera de usar Git

Desde mi experiencia profesional, la mejor manera de usar Git es combinándolo con un servicio como GitHub que te permita tener siempre disponible tu repositorio. Además estos servicios suelen añadir multitud de funcionalidades como:

  • Obtención de estadísticas de uso del proyecto.
  • Gestión de incidencias.
  • Soporte para que otros usuarios colaboren en tus repositorios.
  • Integración con otras herramientras:
    • Gestores de proyectos como Redmine o Taiga
    • Sistemas de integración contínua como Travis
    • Sistemas de gestión de la calidad de un proyecto como SonarQube.

 

Finalmente, espero que este artículo te haya sido útil y si tienes algún comentario, lo esperamos.

Un saludo.

The following two tabs change content below.

Jorge Durán

Entusiasta de la tecnología desde los 10 años, desarrollador y creador de varios proyectos de software y autodidacta por naturaleza. Ingeniero Informático por la USAL
Jorge Durán

Entusiasta de la tecnología desde los 10 años, desarrollador y creador de varios proyectos de software y autodidacta por naturaleza. Ingeniero Informático por la USAL

Share
Publicado por
Jorge Durán

Recent Posts

[Remix] Multitud de recursos para .NET

En los últimos tiempos no he podido escribir con toda la frecuencia que me gustaría,…

3 años hace

¿Qué es un puntero y cómo se usan?

Uno de los problemas más comunes a los que se enfrentan los usuarios que empiezan…

3 años hace

Los 10 mejores paquetes nuget que tienes que instalar

Cuando empiezas un proyecto hay una serie de aspectos comunes que suelen ser resueltos mediante…

4 años hace

Haz los mejores layouts y patrones CSS fácilmente

Si alguna vez has tenido que realizar un desarrollo de front-end seguramente te habrás dado…

4 años hace

10 lugares con retos y competiciones de programación

Una vez que una persona ya ha aprendido lo básico sobre un lenguaje de programación,…

5 años hace

¿Cómo elegir un buen hosting para tu proyecto?

Hoy en día, un gran porcentaje de los proyectos que se desarrollan son páginas webs.…

5 años hace