Acceder Registrarme

SISTEMA DE CONTROL DE VERSIONES


Un sistema de control de versiones es una herramienta muy importante para el desarrollo de software aunque no necesariamente se aplica a éste, ya que en la práctica puede darse en diferentes aspectos ya sean laborales o de la misma vida cotidiana; sin embargo, es más que obvio que en este artículo hablaremos de este tema orientándonos al software y al desarrollo escalable del mismo, mostrando las grandes ventajas que nos da aplicar una herramienta como ésta.

Autor: Kevin Arias (Ver todos sus post)

Sistema de control de versiones Git GitLab GitHub BitBucket

Fecha de publicación: 2018-11-20 20:02:22
Ayúdanos con el arduo trabajo que realizamos.
[ARTÍCULOS GENERALES] SISTEMA DE CONTROL DE VERSIONES

Cuando hablamos de un sistema de control de versiones nos referimos a la administración y/o gestión de cambios de un producto en particular; en el desarrollo de software, nos referimos a archivos digitales o un bloque de los mismos los que se podrían traducir como un producto de software.

Sistema de control de versiones Git

Git es un sistema de control de versiones de código abierto siendo que éste es uno de los más populares y usados a nivel mundial para gestionar el versionamiento de proyectos de software de pequeña, mediana y gran escala.

Flujo de trabajo de Git (Workflow)

Para la gestión de un sistema de control de versiones y el proceso del mismo, un proyecto de software se puede ramificar de diversas maneras, donde cada rama cumple una función en particular ya que éste tendrá un propósito específico para cada situación del proceso de desarrollo.

...

Términos más usados en un sistema de control de versiones

  • Clone.- Proceso para clonar o replicar un repositorio alojado en un servidor de versiones.
  • Stage.- Marcado de estado para subir cambios generados en uno o varios archivos de un proyecto en particular.
  • Commit.- Proceso de persistencia de cambios los cuales serán guardados localmente con un mensaje que se especifique según sea el caso.
  • Push.- Proceso de empuje (Subida) de cambios al servidor remoto.
  • Stash.- Marcado de estado temporal para aislar archivos en un contenedor provisional interno para posteriormente restaurarlos si es necesario.
  • Pull.- Proceso de descarga de cambios generados en el servidor remoto.
  • Merge.- Proceso de combinación de versiones, características o ramas, con lo que se aprovecha en mayor medida el trabajo colaborativo.
  • Branch.- Ramas generadas en un proyecto sea para diferentes versiones de un mismo producto con características diferentes o para mejoras continuas del mismo y dar así un desglose coherente del proyecto hasta finalizar cierta actividad de desarrollo.
  • Pull request (Merge request).- Solicitud de combinación de cambios generados por diferentes ramas las cuales podrán ser aprobados por ciertos usuarios autorizados para realizar este proceso.

Representación gráfica del proceso de sincronización de cambios

...

Servidores de repositorios para Git

Aunque existen diversas opciones; los servidores de repositorios más conocidos y a su vez usados, son los siguientes:

  1. GitHub.
  2. GitLab.
  3. BitBucket.

Clientes Git para un control bajo un interfaz gráfico

Existen varias opciones, siendo que los más conocidos y viables a su vez vienen a ser los siguientes, ordenado del menos funcional al más funcional según criterio propio y experiencia misma de uso en los proyectos de Codideep (Opinión personal):

  1. GitHub Desktop.
  2. SourceTree.
  3. SmartGit.
  4. GitKraken.

Conclusión

Un sistema de control de versiones es una herramienta muy útil en el desarrollo de software y por ende siempre nos toparemos con uno de éstos para desarrollo profesional, donde se nota mucho más la importancia cuando se tiene equipos bastante extensos de programadores; así mismo, podemos decir que esta herramienta viabiliza las mejoras e integración continua de un producto de software en una medida irrefutable.

Como un añadido; exponemos que en Codideep usamos Git como sistema de control de versiones, BitBucket como servidor de repositorios y SmartGit como cliente para gestión de los repositorios.



...

INFORMACIÓN SOBRE EL AUTOR DEL ARTÍCULO
KEVIN ARNOLD ARIAS FIGUEROA (SOFTWARE ARCHITECT - CODIDEEP E.I.R.L.): Profesional en tecnologías de la información con más de 10 años de experiencia en desarrollo de software empresarial, con amplios conocimientos en manejo de arquitecturas de software de escala vertical y horizontal, gestión de proyectos, liderazgo de equipos y dominio en modelado de procesos a gran escala.


  • Debes estar logueado para realizar comentarios