MQL5 Algo Forge es un sistema integrado de control de versiones y almacenamiento de datos para MetaEditor basado en Git. Este trabaja principalmente con la carpeta MQL5, que contiene todos los algoritmos, y la carpeta especial Shared Projects, en la que se almacenan los proyectos públicos.
Git es un sistema de control de versiones que almacena un historial con los cambios realizados en los archivos. Le ayuda a evitar perder cambios importantes, facilita la reversión a una versión anterior, permite trabajar en ramas separadas y combina el trabajo de varios desarrolladores en un solo proyecto. Para obtener más información sobre los conceptos básicos de Git, consulte la documentación oficial.
Commit corrige el estado de los archivos en un momento determinado. Cada commit tiene un identificador único y un mensaje que describe los cambios realizados. Historial del proyecto se forma a partir de los commits, las ramas y las conexiones entre ellos.
Puede mirarcuándo se han realizado los cambios, quién los ha realizado, qué archivos se han modificado y qué se ha incluido exactamente en cada commit. Además, puede comparar versiones de archivos, restaurar su estado anterior, cambiar entre ramas y si es necesario cancelar cambios concretos.
Cuando se trabaja en un proyecto común, se recomienda obtener regularmente los cambios desde un repositorio remoto. Esto permite que Git combine automáticamente los cambios que no entren en conflicto con su copia local. Sin embargo, si dos usuarios modifican la misma línea de código o realizan cambios mutuamente excluyentes, puede producirse un conflicto. En este caso es necesario resolver el conflicto antes de crear un nuevo commit o enviar cambios al repositorio remoto.
Escenario de trabajo básico:
Antes de comenzar, deberá iniciar sesión en el MetaEditor utilizando su cuenta de MQL5.community. Puede empezar a trabajar con Git para un directorio seleccionado de las siguientes maneras:
Git es un programa de línea de comandos, pero el MetaEditor proporciona una interfaz gráfica práctica para realizar operaciones básicas. Podrá acceder a los comandos de Git desde varios lugares:
1. Haga clic con el botón derecho en un archivo o carpeta en la ventana del Navegador.

2. Haga clic con el botón derecho en la pestaña del archivo abierto.

3. Haga clic con el botón derecho en el área del editor de código.

4. Seleccione Git en el menú superior.

Estos comandos realizan operaciones de Git e interactúan con MQL5 Algo Forge.
Para agregar un archivo o carpeta local al repositorio MQL5,, haga clic derecho sobre él y seleccione «Agregar archivo/carpeta a Git». Se abrirá una ventana con una lista de archivos que se añadirán.

Seleccione los archivos necesarios y haga clic en Aceptar. El MetaEditor los agregará a un nuevo commit y lo enviará inmediatamente al repositorio remoto.
Los archivos añadidos y monitorizados están marcados con un icono especial.
.

Una rama es una línea de desarrollo independiente donde se pueden crear nuevas funcionalidades o corregir errores de forma segura sin afectar a la versión estable del proyecto. Una vez que el trabajo esté terminado y los cambios probados, podrá fusionarlo con la rama principal.
Haga clic con el botón derecho en un archivo o carpeta, seleccione «Rama de Git» y, a continuación, «Nuevo». En la ventana que se abrirá, especifique el nombre de la rama y haga clic en Aceptar.

Después de eso podrá cambiar a una nueva rama y continuar trabajando en ella.
La alternancia entre ramas le permite pasar rápidamente entre diferentes versiones de un proyecto. En este caso, los archivos locales se sincronizan automáticamente con la rama seleccionada.
Haga clic con el botón derecho en un archivo o carpeta y seleccione «Rama de Git» En la lista de ramas, seleccione la rama deseada.
Los archivos y carpetas modificados se marcan con un icono especial.
.
![]()
Puede previsualizar los cambios en un archivo antes de crear un commit. Para ello, haga clic con el botón derecho sobre él y seleccione «Ver diferencias con Git».
Para enviar los cambios, haga clic con el botón derecho en el archivo o carpeta y seleccione «Enviar cambios a Git».
En la ventana del commit, puede seleccionar los archivos que desee confirmar y agregar un comentario. Los comentarios detallados le ayudarán a comprender mejor el historial de cambios del proyecto.

Haga clic en Aceptar: el MetaEditor creará un commit y lo enviará al repositorio remoto.
Tras completar con éxito las operaciones de envío y commit, los archivos y carpetas correspondientes se marcarán con un icono especial.
.
Si varias personas trabajan en un proyecto, es posible que alguien realice cambios y los envíe antes que usted. Una situación similar se produce si realiza cambios en una computadora y continúa trabajando en otra. Obtener los cambios de un repositorio remoto le permite actualizar su copia local del proyecto y ayuda a evitar conflictos.
Para obtener todos los cambios disponibles, haga clic con el botón derecho en la carpeta y seleccione «Obtener actualizaciones de Git». En este caso, la información sobre la operación completada, incluidos los cambios recibidos, aparecerá en la pestaña «Registro».

Tras editar el código o eliminar archivos, podrá revertir fácilmente su proyecto al estado en que se encontraba antes de realizar esos cambios.
Para deshacer los cambios realizados en un archivo o carpeta, haga clic con el botón derecho sobre él y seleccione «Revertir cambios en Git».
Si se han modificado varios archivos en el proyecto, se abrirá una ventana de selección. Seleccione los archivos cuyos cambios desea deshacer y haga clic en Aceptar.

Si los cambios que desea revertir ya se han confirmado, utilice deshacer commit.
Si una modificación concreta rompe el programa o sus cambios ya no son necesarios, estos se pueden revertir.
Haga clic con el botón derecho en el archivo o carpeta que desee y seleccione «Ver registro de Git» para abrir el historial de commits. A continuación, haga clic con el botón derecho en el commit que desea deshacer y seleccione «Revertir hasta la revisión».

El MetaEditor creará un nuevo commit que deshará los cambios de el commit seleccionado, conservando al mismo tiempo todo el historial del proyecto.
Para eliminar un archivo o carpeta, haga clic con el botón derecho sobre él y seleccione «Eliminar». El archivo o la carpeta se eliminará de la copia local del proyecto.
Para eliminarlos también del repositorio remoto, actualice el proyecto y luego cree un commit con la eliminación. Al igual que otros commits, este commit será enviado automáticamente al repositorio remoto por el MetaEditor.
Para eliminar un proyecto de una carpeta Shared Projects, haga clic derecho sobre él y seleccione «Eliminar proyecto público».
Se eliminará la copia local del proyecto. Si usted es el autor del proyecto, su copia también se eliminará del repositorio remoto.
El historial de commits de un archivo o carpeta específicos contiene comentarios, nombres de autores y fechas. Este permite realizar un seguimiento de los cambios realizados en un archivo o carpeta a lo largo de todo el proyecto.
Haga clic con el botón derecho en un archivo o carpeta y seleccione «Ver registro de Git».
Las siguientes columnas se mostrarán en la parte superior de la ventana:

Seleccione un commit en la lista: los archivos modificados, agregados o eliminados en ese commit aparecerán en la parte inferior de la ventana.

Los iconos muestran el tipo de cambios:
Haga clic con el botón derecho en un commit para abrir los siguientes comandos: