Ayuda de MetaEditor → Proyectos y MQL5 Storage → Trabajar con el repositorio

Trabajo con MQL5 Algo Forge

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:

  1. La obtención de cambios desde un repositorio remoto: antes del comienzo, la copia local del trabajo debe corresponderse con la versión actual del proyecto en MQL5 Algo Forge.
  2. Modificación de archivos: editar código, añadir nuevos archivos, corregir errores o implementar nuevas funciones. El MetaEditor detectará automáticamente los cambios realizados.
  3. Fijación de cambios: cree un commit para guardar los cambios en el historial del proyecto. Para mayor comodidad, el MetaEditor envía automáticamente el commit creado al repositorio remoto.

Inicio del trabajo #

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:

  • Agregar un archivo o carpeta a Git utilizando el comando «Agregar carpeta/archivo a Git». El comando está disponible para archivos y carpetas dentro del directorio. MQL5,pero no dentro de Shared Projects. Después de agregarlo a los repositorios MQL5, se creará un nuevo commit.
  • Crear un nuevo proyecto en Shared Projects. El nuevo proyecto aparecerá en su cuenta en el sitio web de MQL5 Algo Forge como un repositorio independiente.
  • Crear una bifurcación de un proyecto público en el sitio web de MQL5 Algo Forge, y luego clonarla en el MetaEditor. Todos los archivos del proyecto aparecerán en la carpeta Shared Projects.

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.

Menú contextual de archivos/carpetas

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

Menú contextual de la pestaña

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

Menú contextual del editor de código

4. Seleccione Git en el menú superior.

Git en el menú superior

Estos comandos realizan operaciones de Git e interactúan con MQL5 Algo Forge.

  • Obtener actualizaciones de Git: obtenga los últimos cambios de un repositorio remoto. Git descarga los nuevos commits del servidor y los fusiona con la versión local del proyecto.
  • Enviar cambios a Git: envíe los cambios locales al repositorio remoto. El MetaEditor realiza automáticamente un Git Push después de cada Git Commit, pero puede ejecutar el comando manualmente si es necesario, por ejemplo, si el push automático falla.
  • Confirmar cambios en Git: guarde el estado actual del proyecto en el historial de versiones. El MetaEditor envía automáticamente el commit creado al repositorio remoto. Un commit sirve como punto de control al que puede regresar más tarde.
  • Agregar archivo/carpeta a Git: añada un archivo o carpeta a la lista de cambios preparados para el commit. El MetaEditor crea automáticamente un commit y lo envía al repositorio remoto.
  • Ver diferencias de Git: vea los cambios en los archivos preparados para el commit. El panel de comparación muestra las filas añadidas, eliminadas y modificadas.
  • Revertir cambios en Git: eliminar los cambios preparados que aún no se han confirmado.
  • Ver registro de Git: vea todas los commits con fecha, autor y mensaje de commit. Esto le permite hacer un seguimiento de quién cambió qué y cuándo.
  • Rama Git: abra un menú para crear una nueva rama y alternar entre ramas. Cada rama representa una línea de desarrollo independiente que puede utilizarse para realizar pruebas y, posteriormente, eliminarse o fusionarse con la rama principal.

Agregar archivos #

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.

  • MetaEditor seleccione automáticamente los archivos adecuados para añadirlos a Git y excluya, por ejemplo, los archivos binarios.
  • Git rastrea archivos, no carpetas. Así, cuando añada una carpeta a un repositorio, Git añadirá los archivos que contenga.
  • No puede añadir una carpeta vacía porque no contiene ningún archivo que rastrear.

Agregar una carpeta a Git

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. Sin cambios.

Archivos y carpetas añadidos

Creación de ramas #

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.

Creación de una nueva rama

Después de eso podrá cambiar a una nueva rama y continuar trabajando en ella.

Cambio entre ramas #

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.

Creación de commits #

Los archivos y carpetas modificados se marcan con un icono especial. Modificado.

Archivos cambiados

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».

Cambios en el archivo

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.

Envío a Git

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. Sin cambios.

Obtención de cambios #

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».

Pestaña «Registro» con operaciones de Git

Reversión de cambios #

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.

Ventana de reversión de cambios

Si los cambios que desea revertir ya se han confirmado, utilice deshacer commit.

Deshacer commits #

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».

Ventana de reversión de commit

El MetaEditor creará un nuevo commit que deshará los cambios de el commit seleccionado, conservando al mismo tiempo todo el historial del proyecto.

Eliminación de archivos #

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.

Eliminación de proyectos públicos #

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.

Visualización del historial de commits #

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:

  • Comentarios: la descripción especificada al crear el commit.
  • Autor: el nombre del usuario (inicio de sesión de la cuenta MQL5.community) que creó el commit.
  • Fecha: fecha y hora de creación del commit.

Ventana de historial de cambios

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

Ventana de confirmación de commits

Los iconos muestran el tipo de cambios:

  • Agregado: el archivo ha sido añadido;
  • Modificado: el archivo ha sido modificado;
  • Eliminado (Deleted): el archivo ha sido eliminado.

Haga clic con el botón derecho en un commit para abrir los siguientes comandos:

  • Comparar con la versión actual: abre una ventana con una comparación del estado actual del archivo y el commit seleccionado.
  • Comparar con la revisión anterior: abre una ventana con una comparación de la versión anterior y el commit seleccionado.
  • Revertir hasta la revisión anterior: deshacer los cambios del commit seleccionado.