Viajar atrás en el tiempo siempre ha sido una idea que ha fascinado a la humanidad y después de entender qué es un sistema de control de versiones, sabrás que al menos en el desarrollo de software es posible.

Las tecnologías para el desarrollo de software están en un crecimiento non-stop, los proyectos que realizamos también. Son innumerables las líneas de código que escribimos durante la etapa de un nuevo proyecto. Siempre se trabaja pensando en añadir nuevas funcionalidades, optimizar el código hasta el límite… pero todos sabemos que esto no siempre es un camino de rosas. ¿Quien no se ha llevado las manos a la cabeza al ver que lo que funcionaba bien antes, ahora ya no (y no saber dónde está el fallo)? Tranquilos amigos, ¡tengo la solución a todos vuestros problemas!

thanks

¿De qué estamos hablando?

Un sistema de control de versiones (CVS para los amantes de los tecnicismos – Concurrent Versioning System) es una herramienta que registra todos los cambios que se van haciendo durante un proyecto. Lo que estas herramientas realizan son “capturas” durante las distintas etapas del desarrollo por lo que si en algún momento vemos que algo falla, es tan fácil como restablecer la última versión funcional y ¡ale, a seguir funcionando!

GIT

Lo primero comentar que GIT es uno de los gestores más utilizados en todo el mundo. Dejar constancia en el currículum de que se domina GIT siempre es bien visto a la hora de buscar trabajo ya que muchas de las grandes empresas actuales lo utilizan es su día a día.

Mi intención no es realizar un tutorial de como se utiliza GIT (para eso con buscar en Google, tutoriales hay a patadas). Simplemente comentaré ciertos puntos que creo son convenientes de destacar y las cuales me hacen decantarme por este CVS y no algún otro. Para mi gusto el mejor que hay actualmente. He aquí algunas de las razones que me hacen decantarme por GIT:

La primera es que fue desarrollado por Linus Torvals, el padre del kernel de Linux. ¿Empezamos bien, no?

2. Las copias de seguridad:

Los sistemas de control de versiones como GitHub, por ejemplo, pueden servir como servidores de respaldo. Solo tienes que crear una cuenta y ya tienes respaldado todas las versiones de tu código en la nube y puedes acceder a ellas en cualquier momento.

Razón número 3: Notificaciones.

Siempre que estés participando en algún repositorio y se realiza algún cambio, al instante se te avisa mediante una notificación para que puedas estar al tanto de todas las modificaciones que se efectúan.

La facilidad a la hora de su uso:

No hace falta ser un gurú para aprenderse los métodos de trabajo con GIT. Es más, aunque GIT se ejecute mediante comandos existen diferentes alternativas para hacer de GIT una experiencia fácil y sencilla. Un claro ejemplo es el cliente de escritorio SmartGit.

Quinta razón y una de las más importantes a mi parecer, la comunidad que tiene detrás:

Algo que me gusta de estas herramientas es que hoy en día no trabajas solo, hay comunidades alrededor del mundo que están dispuestas a ayudarte o verificar si tienes algún bug en tu sistema. Los sistemas como GitHub tienen la opción de tener cuentas publicas o privadas.

Cuando desarrollamos proyectos, aplicaciones o códigos con un objetivo en especifico y queremos que los internautas hagan uso de esa aplicación, podemos colocarlo en un repositorio publico para que todos tengan acceso a él. No solo podrán bajar el código sino que también pueden modificarlo y mejorarlo y si lo quieres compartir puedes subirlo al mismo repositorio desde donde lo descargaste. Si al dueño del desarrollo le parece bien tu colaboración, puede fusionar tu código con el de él.

6. La productividad:

Git hace mas sencillo subir los cambios a producción. Haymuchos que todavía hacen la transferencia de archivos a través del FTP. Además de ser inseguro, tienes grandes probabilidades de fallar en la transferencia de algún archivo, y resulta que no vas afectar el proyecto que tienes en tu maquina local, ¡no! sino el que se encuentra en producción, que este está siendo utilizado por todo el personal de la empresa o por todo el mundo a través de la web.

En realidad, no todo es tan bonito

Es verdad que prácticamente hasta ahora lo único que he hecho ha sido alabar estas herramientas prodigiosas. No todo es tan bonito como se pinta. Cuando se trabaja individualmente todo es muy bonito ya que en ningún momento hay conflicto alguno. Tú escribes tu propio código y tienes tus copias realizadas ya que eres muy precavido. ¡Maravilloso!

happy

El problema viene cuando te toca trabajar en equipo.

Imagínate que te has currado unas clases CSS con unos estilos impresionantes. Cuando estás trabajando en local el trabajo se ve maravilloso y claro, ahora te toca unirlo con el el trabajo hecho por tus compañeros. Te imaginas lo que va a pasar ¿no? Más o menos, algo así:

git

Obviamente, al trabajar paralelamente junto con otros programadores es normal que tu código no siempre se adapte 100% al código de los demás por lo que a veces a la hora de unir las partes, muchas cosas acaban descuadradas. Y de experiencia propia os digo esto; no digáis que con coordinación esto no pasa porque sí, esto sí pasa y a menudo. ¡Menos mal que gracias al mismo GIT tenemos una versión anterior guardada para restaurar esta chapuza!

Conclusión

Aunque al principio dé pereza tener que cambiar la forma de trabajarte prometo que si acabas dándole una oportunidad acabaras utilizando en todos tus proyectos futuros. La tranquilidad que se tiene al saber que cuando algo falle la solución está a la vuelta de la esquina es todo un alivio.

Cuéntame, ¿le vas a dar una oportunidad a este estilo de trabajo o piensas que todo lo que puede ofrecerte no es suficiente motivo para darle una oportunidad?