MetaEditor 帮助 → 项目和 MQL5 Algo Forge → 操控存储

使用 MQL5 Algo Forge

MQL5 Algo Forge 是 MetaEditor 中基于 Git 的内置版本控制和存储工具。它主要与 MQL5 文件夹(包含所有算法)和特殊的 Shared Projects 目录(包含所有 公共项目)一起使用。

Git 是一个版本控制系统,它记录了文件在不同时间点的外观。它有助于防止重要更改的丢失,使回滚变得容易,支持实验的分支,并使多个开发人员能够在同一项目上进行协作。从 官方文档 中学习 Git 基础知识可能会有所帮助。

一个 提交 代表文件在特定时间点的状态。每次提交都有一个唯一的标识符和描述更改的消息。一个 项目的历史 是通过提交、分支、以及它们之间的关系来追踪的。

您可以 查看 更改的时间、更改者、更改的文件以及每次提交的内容。您还可以 比较 文件版本、恢复 之前的文件状态、切换 分支,并在必要时 撤销 所选更改。

在共享项目或协作空间中工作时,强烈建议您定期 拉取更改 。这确保了 Git 能自动将远程仓库中未发生冲突的更改合并到本地副本中。然而,如果两个用户更改了同一行代码或引入了相互冲突的更改,则可能会发生冲突。在提交或推送新更改到远程仓库之前,您必须先 解决冲突 。

基本工作流程:

  1. 拉取更改 先从远程开始。当您 开始时,您的本地工作副本应与 MQL5 Algo Forge 中的远程版本保持一致。
  2. 修改文件或进行更改。编辑代码、添加新文件、修复错误或实现功能。MetaEditor 会自动检测更改。
  3. 提交更改 在本地进行。为了方便起见,MetaEditor 会自动将添加的提交推送到远程仓库。

开始使用 #

请确保您的 MQL5.community 帐户已登录 MetaEditor。执行以下任一操作,以在已启用 Git 的目录中开始工作:

  • 在 MetaEditor 中,使用命令 将文件或文件夹添加到 Git ,该文件或文件夹应在 MQL5 文件夹内,但不在 Shared Projects中。在 MQL5 存储库中将出现一个新的提交记录。
  • 创建一个新项目 ,位置在 Shared Projects中。新项目将作为您 MQL5 Algo Forge 网站上帐户下的一个单独存储库出现。
  • 分叉一个公共项目 ,位于 MQL5 Algo Forge 网站中,然后在 MetaEditor 中 克隆它 。完整的项目文件将显示在 Shared Projects下。

Git 是一个命令行程序,但 MetaEditor 提供了一个便捷的界面,可通过点击操作来使用它。您可以从多个位置访问 Git 命令:

1.右键单击“导航器”。

文件/文件夹上下文菜单

2.右键单击标签页。

标签页上下文菜单

3.在代码编辑器中右键单击任意文本或空白区域。

代码编辑器上下文菜单

4.在顶部菜单中,单击“Git”。

Git 的顶部菜单选项

这些命令执行 Git 操作并与 MQL5 Algo Forge 交互:

  • Git 拉取 ― 从远程仓库获取最新版本或获取更改。Git 从服务器下载最新的提交并将其合并到本地项目中。
  • Git 推送 ― 将本地更改发送到远程。MetaEditor 会在每次 Git 提交后自动运行 Git 推送,但如果自动推送失败,您也可以手动运行它。
  • Git 提交 ― 将项目的当前状态保存到版本历史记录中,MetaEditor 会自动将更改推送到远程。提交操作起到检查点的作用,允许您在需要时稍后返回到该版本。
  • Git 添加文件/文件夹 ― 将整个文件夹或特定文件添加到暂存区,MetaEditor 会自动将更改推送到远程仓库。
  • Git 差异 ― 在提交之前,先在暂存环境中查看已更改的文件。对比面板显示新增、删除或修改的行。
  • Git 回滚 ― 删除尚未提交的暂存更改。
  • Git 日志 ― 显示所有提交及其日期、作者和提交消息。这样可以追踪谁在何时更改了什么。
  • Git 分支 ― 访问菜单以创建新分支并在分支之间切换。每个分支都是一条独立的开发路线,您可以将其用于测试,之后可以将其丢弃或合并到主分支中。

添加文件 #

若要将本地文件夹或文件添加到 MQL5 存储库中,请右键单击它,然后选择 “Git 添加文件/文件夹”。此时将出现一个对话框,列出要添加的文件。

  • MetaEditor 会自动选择适合 Git 的文件,并排除二进制文件等项目。
  • Git 跟踪的是文件,而不是文件夹。当你将一个文件夹添加到仓库时,Git 会将该文件夹中的文件添加进去。
  • 无法添加空文件夹,因为它不包含任何可跟踪的文件。

将文件夹添加到存储

请确保已选中要添加的文件,然后单击“确定”。MetaEditor 将通过提交添加文件,并立即将提交推送到远程。

已添加(已跟踪)的文件会标记为“ 无更改”。

已添加的文件和文件夹

创建分支 #

分支就像一个并行的沙箱,你可以在其中安全地开发新功能或修复问题,而不会影响稳定的代码库。新分支上的工作完成并经过全面测试后,该分支就可以 合并 到主项目中。

右键单击文件/文件夹,选择“Git 分支”,然后选择“新建”。在出现的对话框中,输入分支名称,然后单击 “OK”。

创建新分支

然后你就可以 切换 到新分支并开始在那里工作。

在不同分支之间切换 #

切换分支功能让您能够在存储库中的不同沙箱或时间线之间安全切换。它会立即更新您的工作文件,使其与所选分支的精确状态保持一致。

右键单击文件/文件夹,选择 “Git 分支”。从分支列表中,选择您想要切换到的分支。

提交更改 #

已修改的文件和文件夹会被标记为“ 已更改”。

修改后的文件标记

提交之前,您可以通过右键单击文件并选择 “Git 差异” 来查看文件的更改。

文件更改

准备好提交后,右键单击 文件/文件夹然后选择 “Git 提交”。

在提交对话框中,您可以选择要提交的已更改文件,并添加注释。详细的注释有助于未来对变更进行轻松分析。

提交到存储

单击 “OK”,MetaEditor 将提交更改并将其推送到远程存储库。

成功执行提交推送操作后,相应的文件夹和文件将被标记为 无更改。

拉取更改 #

协作时,其他人可能会在您之前更新项目。您也可以在一台计算机上提交更改,然后在另一台计算机上继续工作。拉取更改可确保本地项目包含来自远程存储库的最新更新,从而有助于避免 冲突。

要获取所有远程更改,请右键单击文件夹并选择 “Git 拉取”。“日志”选项卡将自动显示相关日志,包括来自远程的具体更改。

日志选项卡显示 Git 操作的日志

回滚更改 #

保存编辑后的代码或删除文件后,您可以轻松地将项目恢复到更改之前的状态。

要撤销对文件/文件夹所做的更改,请右键单击该文件/文件夹,然后选择 “Git 回滚”。

在包含多个已更改文件的项目中撤销更改会打开一个对话框。在那里,您可以选择要撤销更改的文件,然后单击 “OK”。

回滚文件更改窗口

如果您已经提交了想要回滚的更改,那么请撤销该提交 。

撤销提交 #

如果某个提交破坏了你的程序,或者你不再需要它的更改,你可以快速撤销它。

右键单击受影响的文件/文件夹,然后选择“Git 日志”打开显示提交历史记录的对话框。右键单击要还原的提交,然后选择“还原到此版本”。

回滚提交窗口

MetaEditor 将添加一个新的提交,该提交会撤销所选提交中的更改,同时保留提交历史记录。

删除文件 #

要删除文件/文件夹,请右键单击并选择“删除”。此操作会将本地文件/文件夹删除。

为确保从远程存储中删除的是同一个文件/文件夹:刷新项目,然后 提交删除的更改 。与所有提交一样,MetaEditor 会自动将删除提交推送到远程。

删除共享项目 #

要在“ Shared Projects”下删除项目,请右键单击该项目,然后选择“删除共享项目”。

本地副本将被删除。如果您是该项目的原始创建者,远程副本也将被删除。

查看提交历史记录 #

特定文件/文件夹的提交历史记录会显示评论、作者和日期,帮助您追踪该文件/文件夹随时间的变化情况。

右键单击文件/文件夹,然后选择 “Git 日志”。

顶部的几列包括:

  • 注释 ― 为此次提交添加的描述
  • 作者 ― 提交者的名称(MQL5.community 帐户登录名)
  • 日期 ― 提交的日期/时间。

提交历史窗口

单击列表中的提交,修改、添加或删除的文件将显示在下面的部分中。

特定提交更改窗口

图标显示的更改类型:

  • 已添加 文件已添加
  • 已更改 文件已更改
  • 已删除 ― 文件已删除。

右键单击提交会显示以下选项:

  • 与工作副本比较 ― 打开一个窗口,显示当前状态与提交之间的差异。
  • 与以前的修订版比较 ― 打开一个窗口,显示上一次提交和当前选定提交之间的差异。
  • 恢复到此版本 ― 撤销特定提交中的更改 。