三方文本差异与合并查看器
将两个编辑后的文本版本与共同的基础版本进行三方对比合并(类似 Git merge)。自动解决非冲突的编辑,并通过逐行状态表报告冲突。
输入
当本地和远程对同一行做了不同修改时,以哪一方为准。
输出
摘要
| 指标 | 值 |
|---|---|
| No data yet | |
逐行差异
| 状态 | 基础版本 | 本地版本 | 远程版本 |
|---|---|---|---|
| No data yet | |||
使用指南
什么是三方文本差异与合并?
三方合并会比较文档的两个编辑副本——本地版本和远程版本——与它们共同的基准版本(即共同祖先)进行对比。这正是 Git、Mercurial 等版本控制系统在合并分支时所做的工作,但本工具可以对任何纯文本执行此操作:配置文件、文章、代码片段、CSV 行,以及其他基于行的内容。
与普通的双向差异对比(只告诉你什么发生了变化)不同,三方合并还能告诉你谁修改了内容,以及编辑是否可以自动合并:
- 双方都未修改的行保持不变。
- 只有一方修改的行会自动合并。
- 双方做了相同修改的行视为一次达成一致的更改。
- 双方做了不同修改的行会被标记为冲突,需要你手动解决。
如何使用
- 粘贴基准文本——即原始的共同祖先版本。
- 粘贴本地和远程版本——即从基准版本出发、各自产生分歧的两个版本。
- 选择冲突时的处理方式:显示 Git 风格的冲突标记(
<<<<<<</|||||||/=======/>>>>>>>)以便手动解决,或者自动解决所有冲突——优先使用本地版本、优先使用远程版本,或回退到基准文本。 - 在合并结果框中查看合并后的文本,在摘要表中查看冲突数量统计,在逐行差异表中查看每个未更改、已更改或冲突区域的完整明细。
结果会在你输入时实时更新——无需点击按钮。
冲突是如何检测的
该工具使用最长公共子序列(LCS)行差异算法,将每个版本的行与基准版本对齐——这与大多数文本差异工具使用的技术相同。在本地和远程差异中找到的匹配行将三个文本锚定在一起;两个锚点之间的内容作为一个块进行比较。只有当双方都修改了同一个块且修改内容不一致时,才会被判定为冲突——如果只有一方进行了修改,则始终会干净地合并。
常见问题
这能替代 git merge 吗?
不能——它是一个轻量级的浏览器端近似工具,适用于在 Git 工作流之外合并文本(例如两个人编辑同一份文档,或协调配置偏差)。它不会影响你的仓库或文件系统。
冲突标记是什么意思?
<<<<<<< LOCAL 到 ======= 之间是你本地版本中产生冲突的行;======= 到 >>>>>>> REMOTE 之间是远程版本中产生冲突的行;中间的 ||||||| BASE 部分显示原始文本以供参考——这与 Git 在合并冲突中使用的约定相同。
为什么我没有修改的某一行被标记为已更改? 差异对比是基于整行进行的。如果某一行因为上方的行被添加或删除而改变了位置,LCS 算法可能会以不同的方式重新匹配它。将长段落拆分成较短的行通常能获得更精确的结果。
有大小限制吗? 有——每个版本最多 2,000 行,以确保浏览器中的比较速度。较长的文档应拆分为较小的部分。
隐私
所有操作完全在你的浏览器中进行。你的文本绝不会被上传或发送到服务器。
Use it from code
From 3 credits per callREST API
curl -X POST https://api.iotools.cloud/v1/tool/3-way-text-diff-merge-viewer \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"baseText": "Line1\nLine2\nLine3",
"localText": "Line1\nLine2 changed by local\nLine3 local edit",
"remoteText": "Line1\nLine2\nLine3 remote edit\nLine4",
"conflictStrategy": "markers"
}'Swap in your own key from your account. The tool's fields are the body — no wrapper.
Ask an AI agent
Use the IOTools `3-way-text-diff-merge-viewer` tool (3-Way Text Diff & Merge Viewer) on this input:
YOUR_INPUT_HEREPaste this at any agent connected to the IOTools MCP server, then add your input.