jueves, 14 de abril de 2011

Las Ventajas de Git

Desde hace algunas semanas estoy trabajando con Git tras mi paso intermedio por git-svn que ya detallé en una entrada anterior. Teniendo en cuenta que me inicié con Subversion dentro del mundo de los repositorios, he de decir que estoy encantado con las facilidades y potencia que ofrece Git. Sin llegar a entrar en detalles de aspectos más avanzados como por ejemplo el trabajo con ramas, indicaré aquí algunas de las cosas que me facilitan el trabajo respecto a lo que conocía de Subversion.

Lo primero es que gracias a que Git es un sistema de control de versiones distribuido, podemos hacer commits en nuestra máquina local, por lo que podemos seguir trabajando incluso sin conexión de red y subir todos los cambios de una sola vez más tarde. La ventaja no se encuentra únicamente en el hecho de que el desarrollador pueda no tener conexión a Internet, sino también en las horas de trabajo que se podrían perder en caso de que la máquina que albergase el repositorio a modo de servidor centralizado, estuviese caído.

También resulta cómoda la resolución de conflictos a través de la herramienta mergetool y del editor meld, en el que se presentan tres columnas de una manera muy gráfica y con colores: la central, que será en la que se resolverá el conflicto y que muestra la mezcla que Git intenta realizar; las otras dos columnas se corresponderán con el contenido que Git se ha descargado y la copia que ha encontrado en el repositorio local.

Cabe destacar la posibilidad de realizar una enmienda ("git commit --amend") sobre el último commit realizado, cosa a realizar únicamente en caso de que los cambios no se hayan subido todavía con un push, pues de lo contrario, se podrían ocasionar conflictos y problemas en las copias de trabajo del resto de desarrolladores.

Otra herramienta de gran utilidad es la posibilidad de deshacer todos los cambios locales que tengamos realizados sobre el código fuente y que queramos revertir, restaurando el estado del código al que tuviera tras la ejecución del último commit (esta posibilidad con "git stash" resulta de especial utilidad cuando por ejemplo, se ha llenado el código de trazas mediante las cuales se intentaba depurar un bug, ahorrando el trabajo de recorrer todos los ficheros y deshaciendo los cambios manualmente). Y como última curiosidad, la posibilidad de ver fácil y rápidamente la historia del proyecto con tan sólo teclear el comando "git log", al mismo tiempo que se podrán visualizar los cambios introducidos en cada commit con tan sólo ejecutar el comando "git show" seguido del hash del commit que podemos encontrar en el log.

En definitiva, Git configura una herramienta potente con la que ir descubriendo nuevas posibilidades poco a poco y que nos faciliten el trabajo, además de volverlo más rápido y cómodo.

No hay comentarios:

Publicar un comentario