Tuesday, February 19, 2013
Control de Versiones con Git
Posted on 12:23 AM by Diego Salinas
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.
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?
Un copy and paste de: http://emslinux.com/control-de-versiones-con-git/
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment