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:
- GitHub.
- GitLab.
- 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):
- GitHub Desktop.
- SourceTree.
- SmartGit.
- 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.
- Debes estar logueado para realizar comentarios