Control de versiones con Git

http://feedproxy.google.com/~r/emsLinux/~3/WEwhSoZIE44/ Uno de los aspectos más importantes a tener en cuenta durante el proceso de desarrollo de software en la actualidad es el control de versiones o VCS (Version Control System), control que permite a los desarrolladores mantener un registro detallado de los cambios sufridos por uno o muchos archivos incluidos en un proyecto a lo largo del tiempo, incluso cuando más de una persona se encuentra involucrada en el desarrollo del mismo. En un comienzo y aun en la actualidad por parte de algunos desarrolladores de software, el control de versiones se realizaba de forma local mediante la generación de directorios o carpetas marcadas con la fecha en la cual se realizaban cambios en los archivos involucrados en el desarrollo, método que generalmente lleva a la confusión y a la generación de errores, debido a la gran cantidad de archivos que se acumulan a lo largo del tiempo. Todos estos inconvenientes a la hora de desarrollar software le dan vida a los sistemas de control de versiones actuales, primero a sistemas de control de versiones centralizados CVCS (Centralized Version Control Systems) como Subversion y Perforce en los que todos los archivos son almacenados en un servidor central desde donde los desarrolladores pueden descargar cada uno de los archivos a editar. Con el tiempo, comienzan a surgir sistemas de control de versiones distribuidos DVCS (Distributed Version Control Systems) como Git, Mercurial, Bazaar o Darcs donde los desarrolladores no solamente descargan los archivos que pretenden modificar, sino que clonan todo el repositorio disponible en el servidor directamente a su equipo, convirtiéndose en un respaldo completo del proyecto original y tener la posibilidad de restaurarlo en caso de fallos o inconvenientes con el servidor. Un estudio independiente llevado a cabo por la University of Saskatchewan de Canada, llegó a la conclusión que los sistemas de control de versiones distribuidos ofrecen una gran cantidad de ventajas al momento de desarrollar software en entornos colaborativos en comparación con los sistemas tradicionales de control de versiones o los sistemas no distribuidos, tales como la posibilidad de trabajar desconectado de un servidor central, facilitar la implementación de código experimental entre otras. Dentro de todas las opciones existentes en el vasto mundo de los sistemas de control de versiones distribuidos se encuentra Git, un sistema de control de versiones desarrollado en el 2005 por Linus Torvals (creador de Linux) como solución a los problemas presentados durante el desarrollo del kernel de Linux después de haber perdido el soporte gratuito por parte de BitKeeper, servicio de control de versiones distribuido que hasta ese momento había sido usado en el desarrollo del kernel. Desde un comienzo, los objetivos de Git fueron la velocidad, simplicidad en su diseño, facilidad en el desarrollo no lineal, ser completamente distribuido y ofrecer un gran rendimiento y velocidad a proyecto de amplia envergadura como lo es el kernel de Linux. Al día de hoy, Git se ha convertido en uno de los sistemas de control de versiones distribuido más populares del mercado gracias a las características antes mencionadas, siendo el sistema utilizado en servicios web de control de versiones tan populares como GitHub y Bitbucket. Además de ser la plataforma preferida por proyectos tan grandes como el kernel de Linux, Android, Rails, Fedora, Twitter, PostgreSQL y muchos más. Git es una herramienta imprescindible ya seas un desarrollador experimentado o un desarrollador novato, siendo esta última posibilidad la más adecuada y la oportunidad perfecta para comenzar con la utilización de un sistema de control de versiones distribuido, que seguramente en un futuro se convertirá en tu mejor amigo al momento de desarrollar software, ya sea de forma independiente o haciendo parte de un equipo de trabajo. ¿Cómo realizar un control de versiones con Git? Si estas interesado en conocer un poco más de Git y sus ventajas en comparación con otras tecnologías de control de versiones tan importantes como SVN por ejemplo, te recomiendo leer el articulo GitSvnComparison donde podrás conocer un poco más a fondo todas las posibilidades que ofrece Git además de las que no ofrece en comparación con SVN. Puedes comenzar a zambullirte en el mundo del control de versiones con Git de forma rápida y simple con el curso interactivo de Git creado por CodeSchool para el proyecto. Este curso te permitirá aprender a usar Git en un entorno virtual creado especialmente para aprovechar todas las ventajas que este sistema de control de versiones te puede ofrecer. Una vez estés completamente enganchado y convencido de que Git es tu mejor y más inteligente opción, puedes pasar a un nivel profesional con el libro Pro Git, escrito por Scott Chacon y publicado por Apress que se encuentra disponible de forma gratuita en Internet bajo una licencia Creative Commons Attribution Non Commercial Share Alike 3.0 license, y lo mejor de todo, en español. Claro que si leer libros en la pantalla no es lo tuyo, bien puedes comprar la versión impresa de Pro Git o incluso la versión para el Kindle si eres un fanático del lector de libros de Amazon como lo soy yo. La tecnología está disponible, la información, documentación y libros están disponibles. ¿Qué excusa tienes entonces para no comenzar desde ya a ser un desarrollador más eficiente y organizado con el uso de un sistema de control de versiones distribuido como Git?