Son muchos los beneficios de usar un sistema de control de versiones (VCS) para tus proyectos. Veamos algunos de ellos con mayor detalle.
Los sistemas de control de versiones son una categoría de herramientas de software que ayudan a un equipo de trabajo a gestionar cambios en el código fuente a lo largo del tiempo.
El software de control de versiones realiza un seguimiento de cada modificación del código en un tipo especial de base de datos. Si se comete un error, los desarrolladores pueden retroceder el reloj y comparar las versiones anteriores del código para ayudar a corregir el error y minimizar la interrupción de todos los miembros del equipo.
Es más que probable que, sin un sistema de control de versiones en tu metodología habitual, andes enredado junto a tus compañeros de trabajo en una carpeta compartida en un mismo grupo o peor aún, que el workflow más eficaz sea el de ir dando voces por la oficina avisando sobre el estado de tu trabajo para que tus compañeros de equipo no arruinen los avances (o tú los suyos).
Bueno, este sistema, además de ineficaz es extremadamente arriesgado, ya que se presenta con cierta propensión a la ejecución de errores. Es como una constante operación a corazón abierto donde tarde o temprano, alguien sobrescribirá los cambios de otra persona.
Como comentábamos anteriormente, los sistemas VCS permiten que todos los miembros del equipo de trabajo pueden operar libremente, en cualquier archivo y cualquier momento.
Una vez finalices tus tareas, el VCS te permitirá fusionar todos los cambios en una versión común de modo que no hay duda en torno a dónde se encuentra la última versión de un archivo o de todo el proyecto. Está en un lugar centralizado, controlado y común a todos: tu VCS.
Guardar una versión de tu proyecto después de hacer cambios sobre él es sin duda un hábito tan lógico como fundamental, pero sin un VCS, este trámite en apariencia inofensivo, se vuelve tedioso y confuso de inmediato:
¿Cómo nombras las versiones de tus proyectos?
Si eres una persona más o menos organizada, seguramente te atendrás a un esquema de nomenclatura comprensible (si te apañas con "mengano-sl-redesign-2016-11-12-v19"). Sin embargo, tan pronto como comiences a trabajar con variantes (por ejemplo, preparar una versión con el área de cabecera y una sin ella), las posibilidades comenzarán a crecer y es más que probable que acabes perdiendo la pista.
La cuestión más importante: ¿cómo sabes, con precisión, cuáles son las diferencias entre versiones? Francamente, muy pocas personas se toman el tiempo para documentar cuidadosamente cada cambio importante e incluirlo en un archivo README en la carpeta del proyecto.
Ser capaz de restaurar versiones anteriores de un archivo (o incluso todo el proyecto) sólo significa una cosa: no hay proyecto que pueda perderse debido a un fallo técnico. Si los últimos cambios que has hecho son una catástrofe, simplemente deshazlos con unos pocos clics y retorna a un punto anterior.
Saber esto ya es suficiente para trabajar mucho más relajado, especialmente cuando se trabaja en partes importantes de un proyecto.
Cada vez que guardes una nueva versión de tu proyecto, tu VCS te pedirá que documentes con una breve descripción lo que ha cambiado. Además (si se trata de un archivo de código / texto), puedes ver qué se ha cambiado exactamente en el contenido del archivo. Esto te ayuda a entender cómo ha evolucionado tu proyecto entre versiones.
Una funcionalidad adicional de agradecer cuando utilizamos un VCS distribuido como Git es que puede actuar como backup. Cada miembro del equipo tiene una versión completa del proyecto en su disco, incluyendo la historia completa del proyecto. Si se da el caso de que el cosmos ha conspirado hoy en tu contra y tu servidor se va a freír espárragos (y sus unidades de respaldo fallan), todo lo que necesitas para la recuperación es uno de los repositorios Git locales de tus compañeros de equipo.
Existen muchos tipos de herramientas para el control de versiones: SourceSafe, Git, Mercurial, Gitea, Fossil, Bitbucket... pero yo te recomendaré: Git o Bitbucket.
Son muy ligeros, muy fácil de usar, y hay un montón recursos para comenzar además de una comunidad de apoyo enorme y un sistema de trabajo en equipo sencillo.
Ingeniero Técnico en Informática de Sistemas y programador senior de Overant. Señor del PHP y del MySQL, maestro del jQuery y experto en Ajax, no hay algoritmo que se le resista. Es accesible, navegable y usable. Tranquilo, realista y con gran capacidad de razonamiento. Toca el bajo a tres manos.
Ver perfil completo del autor