Una de las opciones laborales más atractivas de la actualidad pasa por ser desarrollador de programas y aplicaciones. Por ello, en este post vamos hablar de Git, herramienta fundamental para cualquier profesional de este sector.
Índice de contenidos
¿Por qué Git?
Pero, ¿por qué es tan esencial Git para los desarrolladores? Porque con este sistema se pueden controlar de los que se pueden hacer en un proyecto. De esta forma, se puede tener un gran control de todo lo que se trabaja en código y se puede volver atrás para poder corregir cualquier error que hayamos cometido en el diseño de nuestra solución.
Por otro lado, esta herramienta es ideal para trabajar en equipo. Y es que es sabido que las programas, especialmente si tienen muchas perspectivas de trabajo, son cosa no de una sola persona, sino de un equipo de personas que trabajan realmente duro para que todo funcione en los test y posteriores usos de los usuarios finales. De modo que cualquier cambio o modificación en el proyecto se podrá hacer con la tranquilidad que da Git a la hora de mezclar el trabajo con otros compañeros de equipo.
Por tanto, se puede definir Git como un sistema de control de versiones. Sobre esa premisa fundamental, a los iniciados les será mucho más fácil desenvolverse en el mundo Git.
¿Qué hace Git?
A pesar de que la interfaz de Git puede resultar muy similar al de otras herramientas parecidas, lo que diferencia a Git de otros sistemas es su capacidad de almacenar y manejar la información. Y es que Git ha conseguido renovar casi todos los aspectos del control de versiones que muchos de los demás sistemas copiaron de la generación anterior.
La forma de trabajar con Git es casi en su totalidad en modo local, es decir, la mayoría de las operaciones necesitan archivos y recursos locales para funcionar y no otros que puedan proceder de otro dispositivo en red. Este aspecto difiere de otro CVS, en el que normalmente las operaciones tienen un costo adicional por trabajar en red.
El otro beneficio de operar en modo local con Git se basa en la velocidad. Con todo el historial del proyecto en el disco local, las operaciones que se hagan son inmediatas, instantáneas. En resumen, no dependes de una red y todos los problemas de conexión que puedan surgir.
Del mismo modo, tu trabajo se puede desarrollar prácticamente en cualquier lugar si dispones de un ordenador portátil. No dependes de conexión, tampoco de una VPN, ni nada por el estilo. Estés en casa, la oficina, un avión o un tren, puedes confirmar tus cambios felizmente hasta que consigas una conexión de red para subirlos. En muchos otros sistemas, este proceso simplemente es imposible. En Perforce, por ejemplo, no puedes hacer mucho cuando no estás conectado al servidor. En Subversion y CVS, puedes editar archivos, pero no puedes confirmar los cambios a tu base de datos (porque tu base de datos no tiene conexión).
Trabajando con Git
Ya con Git en marcha, comprobarás que se trata de un sistema que básicamente añade información en el código. No se borra información ni tampoco se pierde, especialmente cuando trabajas la base de datos enviando copias de seguridad a otro repositorio. Así que no temas, no perderás información… Y si lo haces, siempre puedes echar mano de la opción Deshacer Cosas.
Dentro de Git, verás que hay tres estados sobre los que podrás trabajar con esta herramienta. confirmado (committed), modificado (modified), y preparado (staged). Confirmado: significa que los datos están almacenados de manera segura en tu base de datos local. Modificado: significa que has modificado el archivo pero todavía no lo has confirmado a tu base de datos. Preparado: significa que has marcado un archivo modificado en su versión actual para que vaya en tu próxima confirmación.
En cuanto a las zonas en las que te moverás, Git clasifica perfectamente tu esquema de trabajo en un directorio, un directorio de trabajo y el área de preparación. Con todos los conceptos claros, tu forma de trabajar será más o menos así:
- Modificarás los archivos en el directorio de trabajo.
- Cuando tengas los archivos preparados, los añadirás al área de preparación.
- Por último confirmarás los cambios. El sistema tomará estos archivos guardados y los almacenará una copia instantánea y permanente en el directorio Git.
Usa las ramas para hacer ampliaciones o testar otras variantes del proyecto
El otro gran concepto que debes conocer una vez que te sumerjas en Git es el de las ramas. Éstas pueden definirse como las pruebas o nuevos caminos que puede tomar cada proyecto. Esencialmente, estaremos trabajando en un master, que es donde el proyecto saldrá finalmente a producción. Sin embargo, se puede sacar una nueva rama para añadir nuevas características o trabajar de manera aislada del proyecto original. Esto es muy útil para hacer pruebas sin comprometer el master. Si lo que has añadido a la nueva rama te gusta y funciona, se puede unir al proyecto original o por el contrario, si no te gusta lo que ves, se puede eliminar sin problema.
Un concepto diferente al de las ramas es el de fork. En este caso, un fork es un proyecto totalmente distinto que se crea a partir de otro. Es una rama secundaria que se convierte en master para iniciar algo nuevo. Si vemos que tenemos un fork entre manos es porque este nuevo proyecto está basado en otro anterior.