---
title: "Работа с MQL5 Algo Forge - Проекты и MQL5 Algo Forge - Справка по MetaEditor"
description: "MQL5 Algo Forge — встроенная в MetaEditor система контроля версий и хранения данных на базе Git. Она работает прежде всего с... - Работа с MQL5 Algo Forge - Проекты и MQL5 Algo Forge - Справка по MetaEditor"
image: "https://www.metatrader5.com/i/logo_metatrader5.png"
url: "https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_working"
---

[Справка по MetaEditor](https://www.metatrader5.com/ru/metaeditor/help) → [Проекты и MQL5 Algo Forge](https://www.metatrader5.com/ru/metaeditor/help/mql5storage) → Работа с MQL5 Algo Forge

# Работа с MQL5 Algo Forge

MQL5 Algo Forge — встроенная в MetaEditor система контроля версий и хранения данных на базе Git. Она работает прежде всего с папкой MQL5, содержащей все алгоритмы, и специальной папкой Shared Projects, в которой хранятся [публичные проекты](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/projects#shared).

Git — система контроля версий, которая сохраняет историю изменений файлов. Она помогает не потерять важные изменения, позволяет легко вернуться к предыдущей версии, работать в отдельных ветках и объединять работу нескольких разработчиков в одном проекте. Дополнительную информацию об основах работы с Git можно найти в [официальной документации](https://git-scm.com/book/en/v2).

[Коммит](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_working#commit) (commit) фиксирует состояние файлов в определенный момент времени. Каждый коммит имеет уникальный идентификатор и сообщение с описанием внесенных изменений. [История проекта](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_diff#viewing_project_history) формируется из коммитов, [веток](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_working#creating_branches) и связей между ними.

Вы можете [посмотреть](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_working#journal), когда были внесены изменения, кто их сделал, какие файлы были изменены и что именно вошло в каждый коммит. Кроме того, можно [сравнивать](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_diff#compare_revisions) версии файлов, [восстанавливать](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_working#revert) их предыдущее состояние, [переключаться](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_working#switching_between_branches) между ветками и при необходимости [отменять](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_working#revert_revision) отдельные изменения.

При работе над общим проектом рекомендуется регулярно [получать изменения](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_working#update) из удаленного репозитория. Это позволяет Git автоматически объединять изменения, которые не конфликтуют с вашей локальной копией. Однако если два пользователя изменили одну и ту же строку кода или внесли взаимоисключающие изменения, может возникнуть конфликт. В этом случае необходимо [разрешить конфликт](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_merging#resolving_conflicts) до создания нового коммита или отправки изменений в удаленный репозиторий.

Основной сценарий работы:

1. [Получение изменений](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_working#update) из удаленного репозитория — перед [началом](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_working#start) работы локальная копия должна соответствовать актуальной версии проекта в MQL5 Algo Forge.
2. Изменение файлов — редактируйте код, добавляйте новые файлы, исправляйте ошибки или реализуйте новые функции. MetaEditor автоматически определит внесенные изменения.
3. [Фиксация изменений](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_working#commit) — создайте коммит, чтобы сохранить изменения в истории проекта. Для удобства MetaEditor автоматически отправляет созданный коммит в удаленный репозиторий.

## Начало работы [#](#start)

Перед началом работы необходимо авторизоваться в MetaEditor с помощью аккаунта MQL5.community. Начать работу с Git для выбранного каталога можно следующими способами:

- [Добавить файл или папку в Git](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_working#add) с помощью команды «Добавить папку/файл в Git». Команда доступна для файлов и папок внутри каталога MQL5, но не внутри Shared Projects. После добавления в репозитории MQL5 будет создан новый коммит.
- [Создать новый проект](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/projects#shared) в Shared Projects. Новый проект появится в вашей учетной записи на сайте MQL5 Algo Forge как отдельный репозиторий.
- [Создать форк публичного проекта](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_merging#forking_projects) на сайте MQL5 Algo Forge, а затем [клонировать](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_merging#cloning_projects) его в MetaEditor. Все файлы проекта появятся в папке Shared Projects.

Git является программой командной строки, но MetaEditor предоставляет удобный графический интерфейс для выполнения основных операций. Доступ к командам Git можно получить из нескольких мест:

1. Щелкните правой кнопкой мыши на файле или папке в окне [Навигатора](https://www.metatrader5.com/ru/metaeditor/help/workspace/navigator).

![Контекстное меню файла/папки](https://www.metatrader5.com/i/help/metaeditor/ru/context_menu_folder_file.png)

2. Щелкните правой кнопкой мыши по вкладке открытого файла.

![Контекстное меню вкладки](https://www.metatrader5.com/i/help/metaeditor/ru/context_menu_tab.png)

3. Щелкните правой кнопкой мыши в области редактора кода.

![Контекстное меню редактора кода](https://www.metatrader5.com/i/help/metaeditor/ru/context_menu_code_editor_git.png)

4. В верхнем меню выберите Git.

![Git в верхнем меню](https://www.metatrader5.com/i/help/metaeditor/ru/top_menu_git.png)

Эти команды выполняют операции Git и взаимодействуют с MQL5 Algo Forge.

- Получить обновления Git — получение последних изменений из удаленного репозитория. Git загружает новые коммиты с сервера и объединяет их с локальной версией проекта.
- Отправить изменения в Git — отправка локальных изменений на удаленный репозиторий. MetaEditor автоматически выполняет Git Push после каждого Git Commit, но при необходимости команду можно запустить вручную, например если автоматическая отправка завершилась ошибкой.
- Зафиксировать изменения в Git — фиксация текущего состояния проекта в истории версий. MetaEditor автоматически отправляет созданный коммит в удаленный репозиторий. Коммит служит контрольной точкой, к которой можно вернуться в дальнейшем.
- Добавить файл/папку в Git — добавление файла или папки в список изменений, подготовленных для фиксации. После этого MetaEditor автоматически создает коммит и отправляет его в удаленный репозиторий.
- Посмотреть разницу с Git — просмотреть изменения в подготовленных к фиксации файлах. На панели сравнения отображаются добавленные, удаленные и измененные строки.
- Откатить изменения в Git — удалить подготовленные изменения, которые еще не были зафиксированы в коммите.
- Посмотреть журнал Git — посмотреть все коммиты с указанием даты, автора и сообщения коммита. Это позволяет отслеживать, кто, что и когда изменил.
- Ветка Git — открыть меню для создания новой ветки и переключения между ветками. Каждая ветка представляет отдельную линию разработки, которую можно использовать для тестирования, а затем удалить или объединить с основной веткой.

## Добавление файлов [#](#add)

Чтобы добавить локальный файл или папку в репозиторий MQL5, щелкните по нему правой кнопкой мыши и выберите «Добавить файл/папку в Git». Откроется окно со списком файлов, которые будут добавлены.

> MetaEditor автоматически выбирает файлы, подходящие для добавления в Git, и исключает, например, бинарные файлы.Git отслеживает файлы, а не папки. Поэтому при добавлении папки в репозиторий Git добавляет файлы, находящиеся внутри нее.Пустую папку добавить не получится, поскольку в ней нет файлов для отслеживания.

![Добавление папки в Git](https://www.metatrader5.com/i/help/metaeditor/ru/mql5storage_adding_folder.png)

Выберите нужные файлы и нажмите OK. MetaEditor добавит их в новый коммит и сразу отправит коммит в удаленный репозиторий.

Добавленные и отслеживаемые файлы помечаются специальным значком ![Нет изменений](https://www.metatrader5.com/i/help/metaeditor/ru/mql5storage_nochanges_icon.png).

![Добавленные файлы и папки](https://www.metatrader5.com/i/help/metaeditor/ru/mql5storage_added.png)

## Создание веток [#](#creating_branches)

Ветка представляет собой отдельную линию разработки, в которой можно безопасно создавать новые функции или исправлять ошибки, не затрагивая стабильную версию проекта. После завершения работы и тестирования изменения можно [объединить](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_merging#merging_changes) с основной веткой.

Щелкните правой кнопкой мыши по файлу или папке, выберите «Ветка Git», а затем «Новая». В открывшемся окне укажите название ветки и нажмите OK.

![Создание новой ветки](https://www.metatrader5.com/i/help/metaeditor/ru/create_new_branch.png)

После этого можно [переключиться](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_working#switching_between_branches) на новую ветку и продолжить работу в ней.

## Переключение между ветками [#](#switching_between_branches)

Переключение между ветками позволяет быстро переходить между разными версиями проекта. При этом локальные файлы автоматически приводятся в соответствие с выбранной веткой.

Щелкните правой кнопкой мыши по файлу или папке и выберите «Втка Git». В списке веток выберите нужную ветку.

## Создание коммитов [#](#commit)

Измененные файлы и папки помечаются специальным значком ![Изменен](https://www.metatrader5.com/i/help/metaeditor/ru/mql5storage_changed_icon.png).

![Измененные файлы](https://www.metatrader5.com/i/help/metaeditor/ru/modified_files_icon.png)

Перед созданием коммита можно просмотреть изменения в файле. Для этого щелкните по нему правой кнопкой мыши и выберите «Посмотреть разницу с Git».

![Изменения в файле](https://www.metatrader5.com/i/help/metaeditor/ru/git_difference_file.png)

Для отправки изменений щелкните правой кнопкой мыши по файлу или папке и выберите «Отправить изменения в Git».

В окне создания коммита можно выбрать файлы, которые необходимо зафиксировать, и добавить комментарий. Подробные комментарии помогают в дальнейшем разбираться в истории изменений проекта.

![Отправка в Git](https://www.metatrader5.com/i/help/metaeditor/ru/mql5storage_committing.png)

Нажмите ОК — MetaEditor создаст коммит и отправит его в удаленный репозиторий.

После успешного выполнения операций отправки и фиксации изменений соответствующие файлы и папки будут помечены специальным значком ![Нет изменений](https://www.metatrader5.com/i/help/metaeditor/ru/mql5storage_nochanges_icon.png).

## Получение изменений [#](#checkout)

Если над проектом работают несколько человек, кто-то может внести изменения и отправить их раньше вас. Аналогичная ситуация возникает, если вы внесли изменения на одном компьютере, а продолжаете работу на другом. Получение изменений из удаленного репозитория позволяет обновить локальную копию проекта и помогает избежать [конфликтов](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_merging#resolving_conflicts).

Чтобы получить все доступные изменения, щелкните правой кнопкой мыши папку и выберите «Получить обновления из Git». При этом на вкладке «Журнал» появится информация о выполненной операции, включая сведения о полученных изменениях.

![Вкладка «Журнал» с операциями Git](https://www.metatrader5.com/i/help/metaeditor/ru/mql5storage_updating.png)

## Откат изменений [#](#revert)

После редактирования кода или удаления файлов можно легко вернуть проект в состояние, которое было до внесения этих изменений.

Чтобы отменить изменения в файле или папке, щелкните по ним правой кнопкой мыши и выберите «Откатить изменения в Git».

Если в проекте изменено несколько файлов, откроется окно выбора. Выберите файлы, изменения которых необходимо отменить, и нажмите ОК.

![Окно отката изменений](https://www.metatrader5.com/i/help/metaeditor/ru/revert_changes_dialog.png)

> Если изменения, которые нужно отменить, уже были зафиксированы в коммите, используйте [отмену коммита](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_working#commit).

## Отмена коммитов [#](#revert_revision)

Если определенный коммит нарушил работу программы или его изменения больше не нужны, их можно отменить.

Щелкните правой кнопкой мыши по нужному файлу или папке и выберите «Посмотреть журнал Git», чтобы открыть историю коммитов. Затем щелкните правой кнопкой мыши коммит, который необходимо отменить, и выберите «Откатиться к ревизии».

![Окно отката коммитов](https://www.metatrader5.com/i/help/metaeditor/ru/mql5storage_revert_revision.png)

MetaEditor создаст новый коммит, отменяющий изменения выбранного коммита, при этом вся история проекта сохранится.

## Удаление файлов [#](#delete)

Чтобы удалить файл или папку, щелкните по ним правой кнопкой мыши и выберите «Удалить». Файл или папка будут удалены из локальной копии проекта.

Чтобы удалить их также из удаленного репозитория, обновите проект, а затем [создайте коммит](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_working#commit) с удалением. Как и другие коммиты, этот коммит будет автоматически отправлен MetaEditor в удаленный репозиторий.

## Удаление публичных проектов [#](#deleted_shared_projects)

Чтобы удалить проект из папки Shared Projects, щёлкните по нему правой кнопкой мыши и выберите «Удалить публичный проект».

Локальная копия проекта будет удалена. Если вы являетесь автором проекта, его копия также будет удалена из удаленного репозитория.

## Просмотр истории коммитов [#](#journal)

История коммитов для конкретного файла или папки содержит комментарии, имена авторов и даты. Она позволяет отслеживать изменения файла или папки на протяжении всего времени работы над проектом.

Щелкните правой кнопкой мыши по файлу или папке и выберите «Посмотреть журнал Git».

В верхней части окна отображаются следующие столбцы:

- Комментарий — описание, указанное при создании коммита.
- Автор — имя пользователя (логин учетной записи MQL5.community), создавшего коммит.
- Date — дата и время создания коммита.

![Окно истории изменений](https://www.metatrader5.com/i/help/metaeditor/ru/mql5storage_journal.png)

Выберите коммит в списке — в нижней части окна появятся файлы, которые были изменены, добавлены или удалены в этом коммите.

![Окно изменений коммита](https://www.metatrader5.com/i/help/metaeditor/ru/specific_commit_file_changes.png)

При помощи иконок отображается вид изменений:

- ![Добавлен](https://www.metatrader5.com/i/help/metaeditor/ru/mql5storage_added_icon.png) — файл добавлен;
- ![Изменен](https://www.metatrader5.com/i/help/metaeditor/ru/mql5storage_modified_icon.png) — файл изменен;
- ![Удаленный (Deleted)](https://www.metatrader5.com/i/help/metaeditor/ru/mql5storage_deleted_icon.png) — файл удален.

Щелкните правой кнопкой мыши коммит, чтобы открыть следующие команды:

- Сравнить с текущей версией — открыть окно со сравнением текущего состояния файла и выбранного коммита.
- Сравнить с предыдущей ревизией— открыть окно со сравнением предыдущей версии и выбранного коммита.
- Откатиться к ревизии — [отменить изменения](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_working#revert_revision) выбранного коммита.

## In this section

- [Подключение MQL5 Algo Forge](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_connect)
- [Создание и работа с проектом](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/projects)
- Работа с MQL5 Algo Forge
- [Просмотр истории проекта](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_diff)
- [Совместная работа и слияние версий](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_merging)
- [Внешний клиент Git](https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_external_client)

```json
{"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ {"@type": "ListItem", "position": 1, "item": {"@id": "https://www.metatrader5.com/ru/metaeditor/help", "name": "Справка по MetaEditor"}}, {"@type": "ListItem", "position": 2, "item": {"@id": "https://www.metatrader5.com/ru/metaeditor/help/mql5storage", "name": "Проекты и MQL5 Algo Forge"}}, {"@type": "ListItem", "position": 3, "item": {"@id": "https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_working", "name": "Работа с MQL5 Algo Forge"}} ]}
{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{ "@type": "Question", "name": "MetaTrader 5: Работа с MQL5 Algo Forge", "acceptedAnswer": { "@type": "Answer", "text": "MQL5 Algo Forge — встроенная в MetaEditor система контроля версий и хранения данных на базе Git. Она работает прежде всего с папкой MQL5..." } }] }
```
