
GIT: ¿Pero qué es esto?
Introducción
En este artículo haremos algo un poco diferente. Haré una pequeña pausa en la secuencia sobre el sistema de repetición/simulador. Aquí mostraré una herramienta que, si desconoces, necesitas conocer. Porque realmente agilizará mucho tus tareas como programador.
Aquí el enfoque será para personas que están comenzando, pero principalmente para los aspirantes a convertirse en profesionales de calidad. Desafortunadamente, la herramienta que mostraré no es tan simple de usar en Windows 11 como en Windows 10. Entonces, la preferencia en el uso, al menos en el momento en que escribo este artículo, si estás usando Windows, es hacer uso de la misma en Windows 10.
La herramienta es GIT. Aunque originalmente fue pensada para LINUX, esta herramienta se muestra muy buena y perfecta para quienes desean programar y desarrollar nuevas aplicaciones. Sin embargo, hasta el momento, el editor de MQL5 no se integra directamente con ella. Pero esto no impide de ninguna manera que puedas usar esta herramienta. Y bien, hay algunos pasos necesarios antes de que realmente puedas sacarle provecho.
Si ya conoces GIT o trabajas con él, este artículo no añadirá nada a tu conocimiento, tal vez solo te sirva como curiosidad. Pero si no lo conoces y vives creando código, tarde o temprano acabarás haciendo algo que te desanime a continuar desarrollando una determinada aplicación. Esto se debe a que, durante la edición del código, sin darte cuenta, añadiste un error que solo notaste varios días o semanas después. Créeme, este tipo de cosas es mucho más común de lo que parece. Pero GIT nos ayuda a evitar esto.
¿Qué es eso de GIT?
GIT es un programa, o como me gusta llamarlo, herramienta, que nos permite monitorear y catalogar, de forma simple y bastante eficiente, versiones de una aplicación que estamos desarrollando. Esto no será de hecho un tutorial, y ni pretendo hacer tal cosa. Principalmente porque existe una enormidad de tutoriales sobre el tema. En la gran mayoría de las veces, tales tutoriales están enfocados en editores que se integran nativamente con GIT. Como en el caso del Visual Studio. Como el MetaEditor no hace esto, necesitamos hacer algunos ajustes para que podamos trabajar adecuadamente con GIT junto con el MQL5.
Una vez que dichos ajustes se hayan realizado, podrás utilizar cualquier tutorial sobre GIT para profundizar aún más. Este artículo debería haberse hecho antes, pero no imaginaba que había tanta gente comenzando y aspirando a convertirse en profesional. Tales personas tienen muchas dificultades para mejorar, ya que desconocen medios o formas de tomar una aplicación y modificarla, aprendiendo con ello. Pero lo principal no es modificar la aplicación. Y sí, saber cómo documentar lo que ocurrió aprendiendo con los errores y mejorando a ti mismo en términos de conocimiento. GIT, como dije hace poco, es una forma muy buena de aprender y documentar tus experiencias en la programación. La manera de hacer esto es bastante simple y directa. Esto, una vez que hayas realizado los pasos que mostraré.
Para que puedas comprender el poder de esta herramienta, al tomar una aplicación cualquiera, como por ejemplo, este sistema de repetición/simulador que estoy mostrando, y la modificas para averiguar si tu hipótesis funciona o no. Resulta difícil, después de un tiempo, saber qué fue modificado. Más aún si la modificación debe ocurrir en diversos puntos. Hacer esto sin el uso de una herramienta adecuada es muy complicado. Te acabas perdiendo en medio de los cambios y esto desestimula a estudiar y profesionalizarte. Pero GIT hace esto por ti. Puedes modificar la aplicación, probar las modificaciones que hiciste. Si tu hipótesis es correcta, podrás tener un documento final que diga exactamente qué fue modificado. ¿Esto es o no es algo fantástico? Yo mismo, cuando aprendí, tenía que hacer las cosas manualmente. Pero con GIT, verás las cosas ahí, destacadas.
GIT se basa en un concepto muy simple. En su modelo más básico, se parecerá mucho a una lista encuadernada de modificaciones. Muy parecido a un diario. Esto conforme vas haciendo las anotaciones. Veremos cómo hacer esto después. Pero en un modo más amplio, será un grafo. Siendo un grafo, puede asumir cualquier forma, dándonos diversas direcciones en una misma implementación. Donde cada una de las direcciones permitirá desarrollar ideas correlacionadas. Si nunca has visto o no sabes qué es un grafo, puedes tener una idea mirando la imagen abajo:
Básicamente, en cada uno de los puntos tenemos un valor que se conoce como NODO. Las líneas que conectan cada uno, se conocen como ARISTAS. Este es un grafo simple, pero puede ser mucho más complicado. Vale mucho la pena estudiar sobre grafos. Más aún si realmente deseas convertirte en un profesional. Pero no comiences directamente con los grafos. Empieza con las listas, luego estudia sobre árboles y por último, estudia los grafos. Así aprenderás las cosas de forma más lineal.
Comenzar con lo básico
La parte más básica de todas es, de hecho, bajar la última versión de GIT. Para esto deberás acceder al siguiente enlace: git-scm.com. En este mismo sitio tendrás acceso a la documentación. Mucho de este material ya se encuentra traducido. Pero, aunque otro no lo esté, encontrarás mucha gente explicando sobre el tema. Solo busca y estudia. Entonces aquí quiero solo mostrar lo básico para quienes no conocen GIT.
Si estás utilizando Windows, bastará con hacer clic en la parte mostrada en la imagen abajo:
En el momento en que escribo este artículo, esta es la versión más actual. Una vez que hayas descargado la versión más actual de GIT, deberás instalarla en tu máquina. La instalación puede hacerse con la configuración por defecto. Sin embargo, hago un pequeño cambio, que puede verse en la imagen a continuación:
No necesitas hacer esto. Puedes cambiar el editor después. Pero como me gusta usar el NotePad++, le indico a GIT que lo use. Si luego decides usar otro, bastará con cambiar una variable global de GIT. La variable en cuestión es CORE.EDITOR; consulta la documentación para más detalles. Muy bien, una vez que GIT esté instalado, necesitas configurarlo. Pero no te preocupes, esta parte es bastante simple. Lo explicaré con calma, para que tengas una idea de cómo empezar. Al terminar la instalación de GIT, tendrás acceso a lo que se encuentra destacado en la imagen a continuación:
Precisamente estas dos opciones no aparecen en Windows 11. Por esto, recomiendo usar Windows 10. Aunque es posible activar estas opciones en Windows 11, será necesario realizar algunos pasos que escapan al alcance de este artículo. Un detalle: No necesitas estas opciones. Pero el acceso a ellas facilitará mucho el trabajo, haciendo la experiencia más agradable. Si haces clic en la opción Git GUI Here, se mostrará la siguiente ventana:
Aquí puedes abrir, clonar o crear un repositorio. Pero queremos usar GIT junto con MQL5. Entonces, no hagas clic en nada todavía. No te preocupes por la opción Git Bash Here. El enfoque aquí será la GUI, pero muchos explican cómo usar el BASH, solo busca en la WEB. Dado que la idea es presentar GIT, usaré la parte más simple de él, es decir, la GUI. Todo lo que se hace en una interfaz, se puede hacer en la otra. Es más una cuestión de costumbre. Para empezar, abre el MetaEditor y haz clic en el punto destacado en la imagen a continuación:
Esto hará que se abra la siguiente ventana:
Ahora necesitas permitir que los archivos y carpetas ocultas sean visibles. Esto es para que puedas hacer un backup local con GIT. A pesar de todo, puedes usar GITHUB. Pero aquí quiero ser lo más simple posible. Entonces accede a las opciones del Explorer y cambia el siguiente parámetro.
Marca la opción que está destacada, haz clic en aplicar y luego en ok. Con esto, ahora podremos ver la carpeta que será creada por GIT. Dado que aún no tenemos ningún repositorio, no se mostrará ninguna carpeta. Pero ahora haz clic nuevamente con el botón derecho del mouse y selecciona Git GUI Here. Luego haz clic en Create New Repository y verás la siguiente ventana.
Ahora haz clic en el botón Browse y se abrirá la siguiente ventana:
Simplemente haz clic en Select Folder y verás la siguiente imagen:
Haz clic en el botón Create y el resultado será este:
Esta carpeta que está destacada en la imagen de arriba es precisamente lo que deseábamos crear. En cuanto se cree esta carpeta, se abrirá una nueva ventana. Puedes verlo en la siguiente imagen.
Ahora observa que en la región marcada hay archivos EX5. Estos archivos son aplicaciones que se pueden ejecutar en MetaTrader 5. Pero no queremos ver estos archivos contaminando la búsqueda. Para eliminar este y cualquier otro tipo, debemos hacer una pequeña edición. Esto para este repositorio que estamos configurando. Si lo deseas, siéntete libre de modificar las cosas de forma global. GIT te permite trabajar de ambas maneras. Para limpiar estos archivos no deseados, no necesitas borrarlos. Bastará con hacer lo que se muestra en la imagen abajo:
Observa la ruta y el archivo que necesitamos modificar. Ahora abre el archivo, y verás inicialmente el siguiente contenido:
# git ls-files --others --exclude-from=.git/info/exclude # Lines that start with '#' are comments. # For a project mostly in C, the following would be a good set of # exclude patterns (uncomment them if you want to use them): # *.[oa] # *~
Contenido original del archivo exclude
Puedes borrar este contenido, ya que está compuesto solo de comentarios. De cualquier manera, deberás añadir algunas líneas en él. En este caso, deseamos que todos los archivos con extensión EX5 no sean mostrados, así como otras cosas también. Entonces modifica el archivo como se ve abajo. Consulta la documentación para más detalles. Y guarda el archivo.
Lo que estamos haciendo es decirle a GIT que, en este repositorio, algunos tipos de archivos deben ser ignorados. Pero el filtro debe estar donde mostré. El sistema de filtrado cuenta con muchas opciones, así que estudia la documentación. Cuanto mejor sea el filtrado, más fácil será la siguiente etapa. Una vez que el archivo ha sido guardado, vuelve a la ventana del GIT GUI y haz clic en el botón RESCAN que se encuentra destacado en la imagen a continuación. Observa que aquellos archivos con extensión EX5 ya no aparecen. Desplaza la pantalla y compara con lo que había antes de editar el archivo.
Hasta ahora no hemos hecho nada. Solo le hemos dicho a GIT dónde estará el repositorio y qué debe filtrar. Una observación importante: Cuando vayas a guardar las cosas, no necesitarás guardar todo lo que está en la carpeta MQL5. Solo bastará con guardar la carpeta .GIT y todo lo que GIT esté observando será preservado. Esto ahorra mucho espacio. Pero como se dijo, puedes guardar todo en la nube a través de GITHUB. El contenido guardado será exactamente el repositorio en la carpeta .GIT
Y entonces, ¿cuándo comenzamos a guardar las cosas en GIT? Calma, mi querido lector. Calma, ya casi hemos llegado. Aún faltan algunos pequeños detalles por configurar. Para configurar esta última parte, debes seleccionar lo que está destacado en la imagen a continuación.
Esto hará que se abra una nueva ventana. Esta puede verse abajo, donde puedes notar que tenemos algo, aparentemente duplicado. Pero no está duplicado. Observa con atención.
Ve que tenemos dos marcas. Una del lado derecho y otra del lado izquierdo. La del lado izquierdo configurará los datos sobre este repositorio. Ya la del lado derecho hará la configuración global. Es decir, para cualquier repositorio que se cree. Puedes configurar uno u otro, o ambos si lo deseas. Pero sugiero que hagas la configuración global, para no tener que hacerlo cada vez. Entonces, coloca en los campos destacados una identificación personal. Y vamos al siguiente tema, pues ahora terminamos de configurar lo más básico.
Crear el primer COMMIT
Ahora que hemos hecho lo básico, necesitas entender algo. En GIT, tenemos tres estados básicos. Estos son los estados en los que un archivo puede encontrarse dentro de GIT.
- El primer estado es el llamado COMMITTED. En este, el archivo con todos sus datos está almacenado de forma segura dentro del repositorio.
- El segundo estado se llama MODIFIED. En este, el archivo ha sido modificado y tales cambios aún no se han guardado en el repositorio.
- El tercer y último estado es STAGED. Que es cuando le dices a GIT que el archivo está listo para ser guardado en el repositorio.
Para ejemplificar y que entiendas mejor qué significa cada uno de estos estados, haremos lo siguiente: Observa en la imagen abajo que tenemos el archivo ExpertMACD.mq5. Este está como UNSTAGED, es decir, GIT no lo está observando.
Vamos a hacer que GIT empiece a observar y seguir las modificaciones de este archivo. Para esto, haz clic en él. Observa que en el área derecha, podemos ver el contenido actual del archivo.
En la parte superior del contenido del archivo puedes observar la palabra UNTRACKED, que significa que el archivo aún no está siendo observado por GIT. Para hacer que GIT observe el archivo, debes usar lo que se muestra abajo:
Usando esta opción, o el atajo CTRL + T, tendrás como resultado lo que se ve en la imagen inmediatamente abajo:
Observa cómo cambiaron las cosas. Ahora el archivo está con la palabra STAGED FOR COMMIT, es decir, está en el tercer estado, listo para ser almacenado. Si no deseas añadir este archivo, bastará con seleccionarlo y usar el atajo CTRL + U, esto hará que salga del modo STAGED y vuelva a UNTRACKED. Detalle: Un archivo también puede ser removido de otras maneras. Estudia la documentación para más detalles. Aquí quiero mantener las cosas lo más básico posible.
Entonces, pongamos junto a este archivo sus archivos de encabezado. Así tendremos lo que puede verse en la imagen abajo:
Con esto, ya podemos crear el primer COMMIT. Para hacerlo, solo haz clic en el botón COMMIT. Sin embargo, es una buena práctica y hasta adecuado, que pongas algún comentario antes de hacer clic en el botón COMMIT. Esto para facilitar encontrar y entender las modificaciones después.
La imagen de arriba muestra cuál será nuestro mensaje. Después, haz clic en el botón COMMIT. Así, GIT comenzará a observar estos archivos que indicamos. El resultado será lo que se ve a continuación.
Observa en el área marcada que GIT ha tenido éxito en la creación del COMMIT. Con esto, GIT comenzará a observar estos archivos. Ahora puedes cerrar esta ventana de GIT GUI. Trabaja en el código, pruébalo y modifícalo a tu gusto. Cuando termines y tengas una versión que consideres estable, deberás pedir a GIT que actualice el repositorio. Para separar las cosas, veremos esto en otro tema.
Actualizar el repositorio
Actualizar el repositorio, en muchos casos, es más simple mediante BASH, pero mostraré cómo hacerlo vía GIT GUI. Para esto, usa el botón mostrado en la imagen a continuación:
Al hacer esto, GIT verificará dónde y qué se ha modificado en el archivo que está siendo rastreado y que ha sido modificado. Esto se mostrará nuevamente como UNSTAGED. Puedes ver esto en la imagen arriba. Observa que el archivo está en el estado MODIFIED, y en la ventana donde podemos ver el contenido, GIT nos muestra lo que se ha modificado. Esto aparece destacado en color verde. Puedes cambiar este color en las opciones. Como quiero solo mostrar lo básico, queda a tu criterio hacer estos cambios.
Ahora depende de ti aceptar y guardar esta modificación o ignorarla. Porque sí, si lo deseas, GIT puede hacer que el archivo vuelva a un estado anterior. Piensa en esto como las opciones presentes en Windows, como puntos de restauración. Por esto, es importante siempre poner un mensaje adecuado al hacer un nuevo COMMIT.
Entonces, vamos a aceptar las modificaciones y guardarlas. Así, después de añadir un mensaje adecuado y hacer clic en el botón de COMMIT, ve lo que sucederá.
¿Y por qué ha sucedido esto? El motivo es que las modificaciones no están en el estado STAGED, es decir, aún no están listas para que GIT las documente, están en el estado MODIFIED. Para añadir los archivos que están en el estado MODIFIED al estado STAGED, simplemente presiona CTRL + I. Pero hay un detalle, ve la imagen abajo:
Si presionas el botón de SÍ, todos los archivos, en este caso los 403 archivos, serán añadidos al estado STAGED. Pero, como queremos que solo los archivos que están siendo observados y que han sido modificados sean añadidos, debemos presionar el botón de NO. Y el resultado será el siguiente:
Con esto, ya puedes presionar el botón COMMIT para que GIT documente los cambios que antes no fue posible hacer. Entienden ahora. GIT solo documentará en el repositorio los archivos que estén en el estado STAGED. Todos los demás serán ignorados. Muy bien, este tema fue fácil. Pero, ¿y si deseamos descartar las modificaciones porque el código quedó todo enredado? ¿Cómo puede ayudarnos GIT a descartar los cambios? Bueno, esto se explicará en el próximo tema.
Descartar las modificaciones...
Para descartar los cambios que has hecho y recuperar lo que GIT documentó en el repositorio, es algo muy simple. Debes seguir los mismos pasos que se utilizaron en el tema anterior. De manera que deberíamos ver los cambios, como se muestra en la imagen a continuación.
Observa que tenemos una nueva modificación, y que se encuentra destacada. Pero queremos que sea removida. Entonces, le pedimos a GIT que haga esto. Esta solicitud se realiza usando el atajo CTRL + J, o si prefieres, usando lo que se muestra en la imagen.
Al hacer esto, GIT te pedirá confirmación de lo que se hará. Esto puede verse en la imagen abajo:
Si aceptas, GIT revertirá el contenido del archivo, colocando en él el contenido que está en el tope del repositorio. Si el archivo está abierto en MetaEditor, notarás que MetaEditor te pedirá recargar el archivo. Una vez hecho esto, notarás que los cambios fueron removidos por GIT. Es importante que entiendas esto, pues conociéndolo y entendiéndolo, podrás comprender el siguiente tema.
Retornar el código a una versión más estable
Tal vez una de las cosas más útiles es justamente hacer esto, volver a una versión en la que el código estaba mucho más estable. Hacer esto sin usar GIT es muy complicado y, en algunos casos, imposible, obligándonos a descartar todo el código y comenzar desde cero. Pero hacerlo vía GIT es muy simple y directo. Para esto, puedes seleccionar una de las opciones marcadas a continuación.
Esto abrirá la ventana mostrada abajo:
Ahora, observa por qué siempre es importante poner mensajes adecuados. Así será más simple entender los cambios y encontrar una versión estable. Entonces, puedes navegar y elegir la versión que deseas recuperar. Una vez seleccionada la versión, deberás hacer clic con el botón derecho y seleccionar el elemento que se encuentra destacado.
Una vez hecho esto, se abrirá una nueva ventana. Aquí debes tener cuidado. Si NO DESEAS eliminar algo del repositorio, selecciona la opción mostrada abajo:
El resultado de esta acción se puede ver a continuación.
Presta atención a que el indicador del tope del repositorio ha cambiado. Esto es precisamente lo que deseamos, ya que el tope del repositorio muestra lo que podremos recuperar en el código. Ahora vuelve a la ventana de la GUI y selecciona la opción mostrada a continuación.
Con esto, todo el código que se encuentra en el tope del repositorio, que ahora es una versión anterior, será reubicado en los archivos correspondientes. Un detalle, si algún archivo había sido eliminado, GIT recreará el archivo. Por esto es tan importante entender cuál es el tope del repositorio. Sin entender esto, no podrás volver a una versión anterior. Pero antes de que los cambios sean aplicados, se te pedirá una confirmación, como se muestra abajo.
Muy bien, ahora ya sabes cómo volver a una versión anterior. ¿Pero qué pasa si has retrocedido demasiado? ¿Cómo volver a una versión más reciente? Para no confundir las cosas, veamos esto en un nuevo tema.
Retornar a una versión más reciente dentro del repositorio
A veces, al regresar a una versión más estable, acabamos retrocediendo demasiado y necesitamos volver a una versión más reciente. Para ejemplificar esto, necesitamos crear un tercer nivel. Ya que usando solo dos niveles, no será posible entender cómo hacer esto vía GUI. Mediante BASH es más directo, ya que solo se tiene que enviar un comando a GIT. Pero quiero mostrar cómo hacerlo vía GUI. Entonces, supongamos que tenemos el siguiente escenario, mostrado a continuación.
Nota que ahora tenemos tres niveles. Decidimos regresar al primer nivel, así el resultado sería lo que se muestra a continuación. Recordando que para hacer esto, usaremos los pasos vistos en el tema anterior.
En este punto, imaginas que has retrocedido demasiado. Entonces decides subir al segundo nivel para verificar si el código sería adecuado. ¿Cómo proceder en este caso? Este es un caso interesante y existen diversas formas de manejarlo. Pero nunca debes entrar en pánico. Entonces, antes de ver cómo hacer esto, veamos un pequeño detalle que puede ser importante. Si miras dentro de la carpeta .GIT, notarás la existencia de un archivo que no estaba allí. Esto puede notarse en la imagen a continuación.
El contenido de este archivo es un HASH, útil para recuperar, en caso de un gran error, los datos que GIT tiene en el repositorio. Puedes ver estos HASH al observar el contenido en el punto destacado a continuación:
No entraré en detalles sobre cómo usar este HASH, pues está todo en la documentación y hay muchos tutoriales que muestran cómo hacerlo en la WEB. Pero volvamos a la cuestión de cómo obtener los datos que están en el segundo nivel. Una vez que selecciones el segundo nivel, debes convertirlo en el tope del repositorio. Siempre es así. Sin embargo, debes tener cuidado de no seleccionar erróneamente el modo HARD, siempre debes preferir usar el modo SOFT. Tal como se muestra en la imagen a continuación.
Al seleccionar adecuadamente las opciones, tendrás el resultado mostrado a continuación.
Esto te permitirá tener acceso al código más reciente. Y así es como vas navegando entre las versiones que GIT ha almacenado en tu repositorio. Pero supongamos que deseas eliminar y descartar las modificaciones más nuevas. Para hacer esto, seleccionarías la opción que se muestra a continuación:
Esto hará que el resultado sea el siguiente:
Existe un último comando que debe verse. Supongamos que has descargado o deseas reponer todo un repositorio desde un backup. El motivo no importa, pero simplemente deseas reponer las cosas en la última versión que se encuentra en el repositorio, antes de que lo borraras del disco. Puedes hacer esto archivo por archivo, pero también puedes usar la opción destacada en la imagen a continuación.
Cuando selecciones esta opción, todo el contenido del repositorio será revivido, como si mágicamente, los archivos y directorios volvieran a existir. Usa esta opción siempre que necesites reponer todo un repositorio que estaba guardado como backup. Esto para volver a trabajar rápidamente en el proyecto.
Consideraciones finales
En este artículo, mostré los aspectos más básicos para poder usar GIT. Espero que este artículo sirva de incentivo para que estudies y procures siempre mejorar. Las herramientas existen, pero no esperes simplemente que alguien venga y te muestre cómo usarlas. Es necesario que siempre estés dispuesto a aprender cosas nuevas. Y no pienses que GIT es solo lo que mostré aquí. Es mucho más y puede ayudarte mucho. Pero al menos, espero haber despertado tu curiosidad respecto a GIT.
Traducción del portugués realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/pt/articles/12516





- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso