---
title: "合并修改 - 项目和 MQL5 存储 - MetaEditor 帮助"
description: "当团队协同工作于一个 共享项目 时，也许会发生同一文件被多个用户同时编辑的情况。 为了避免这些修改被彼此覆盖，MetaEditor 具有合并数据的功能。 如果您尝试将某个已被某人修改的文件保存到存储中，MetaEditor 会提示您首先获取最新的更改。... - 合并修改 - 项目和 MQL5 存储 - MetaEditor 帮助"
image: "https://www.metatrader5.com/i/logo_metatrader5.png"
---

[MetaEditor 帮助](https://www.metatrader5.com/zh/metaeditor/help) → [项目和 MQL5 存储](https://www.metatrader5.com/zh/metaeditor/help/mql5storage) → 合并修改

# 合并修改

当团队协同工作于一个 [共享项目](https://www.metatrader5.com/zh/metaeditor/help/mql5storage/projects#shared) 时，也许会发生同一文件被多个用户同时编辑的情况。 为了避免这些修改被彼此覆盖，MetaEditor 具有合并数据的功能。

如果您尝试将某个已被某人修改的文件保存到存储中，MetaEditor 会提示您首先获取最新的更改。 当收到更改时，会尝试合并数据: 将存储的更改应用到本地数据副本，并尝试保存当前的本地更改。

| 合并仅适用于采用 ANSI 格式的源代码（mq4，mq5，mqh，cpp 和 h）的文本文件。 Bmp 和 wav 文件总是被较新的版本完全替换。源代码文件逐行比较。出现冲突时（例如，本地文件和存储库中相应文件中的相同行被更改），合并算法目标是最大限度地保留本地更改。 |
| --- |

## 合并示例

我们来参照一个合并两个文件的典型案例。 如上所述，在合并期间，逐行比较源代码文件。 如果存储中的文件包含本地文件中不存在的行，那么这些行会被添加。参照以下合并两个文件的示例:

![合并两个文件的示例](https://www.metatrader5.com/i/help/metaeditor/en/merge_example_1.png)

在您点击后![从存储更新](https://www.metatrader5.com/i/help/metaeditor/en/mql5storage_update_icon.png)从存储更新，本地文件保持不变，因为本地更改具有更高的优先级。 如果存储文件包含新行 "x=0;"，它会被添加，而 "return(true);" 这行将保持不变:

![合并两个文件的示例](https://www.metatrader5.com/i/help/metaeditor/en/merge_example_2.png)

| 合并的主要原则是本地数据拥有更高优先级。 该算法旨在最大限度地保护本地更改。在合并过程中有许多类型的冲突。在本节中，只考虑了一种最常见的情况。 合并算法很复杂，并且在分析文件中提供了一​​个全面的方法。关于合并的更多信息，可以参阅[有关集成的书籍](https://svnbook.red-bean.com/en/1.2/svn-book.html) 中的测试程序。 |
| --- |

```json
{"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ {"@type": "ListItem", "position": 1, "item": {"@id": "/zh/metaeditor/help", "name": "MetaEditor 帮助"}}, {"@type": "ListItem", "position": 2, "item": {"@id": "/zh/metaeditor/help/mql5storage", "name": "项目和 MQL5 存储"}}, {"@type": "ListItem", "position": 3, "item": {"@id": "/zh/metaeditor/help/mql5storage/mql5storage_merging", "name": "合并修改"}} ]}
{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{ "@type": "Question", "name": "MetaTrader 5: 合并修改", "acceptedAnswer": { "@type": "Answer", "text": "当团队协同工作于一个 共享项目 时，也许会发生同一文件被多个用户同时编辑的情况。 为了避免这些修改被彼此覆盖，MetaEditor 具有合并数据的功能。 如果您尝试将某个已被某人修改的文件保存到存储中，MetaEditor 会提示您首先获取最新的更改。 当收到更改时，会尝试合并数据..." } }] }
```
