---
title: 为什么远端变化打开 diff 看不到内容差异
navTitle: 远端变化没有内容差异
---
# 为什么 Changes 视图里有很多远端变化，但打开 diff 看不到内容差异

这通常不是本地文件被误改了，而是服务器当前状态和 SuccApp 本地同步基线不一致。SuccApp 会把这类差异显示为远端变化，即使文件正文看起来没有可见差异。

## 先看变化方向{#direction}

Changes 视图中有两类常见变化：

| 变化方向 | 对比对象 | 含义 |
| :--- | :--- | :--- |
| 本地变化 | 工作区文件 vs 本地 mirror | 本地文件相对上次同步基线发生了变化 |
| 远端变化 | 服务器当前内容 vs 本地 mirror | 服务器相对上次同步基线发生了变化 |

如果变化显示在远端变化分组中，说明 SuccApp 认为服务器比本地 mirror 更新。它不表示工作区文件一定被修改。

## 为什么 diff 可能看不到差异{#why}

SuccApp 检测远端变化时，为了避免每次刷新都下载大量服务器文件，不会对所有远端文件正文做完整内容对比。它主要根据服务器返回的资源版本、修改时间和元数据判断服务器是否变化。

因此可能出现以下情况：

1. 服务器重新保存、升级或批量处理了资源，推进了文件版本或修改时间，但文件正文没有实际变化。
2. 服务器只更新了 `.meta` 中的资源标识、版本、修改人、修改时间等同步字段。
3. 文件内容发生了格式等价的重写，打开文本 diff 时看不出业务差异。
4. 本地 mirror 还是旧基线，服务器已经被其他人、浏览器设计器、脚本或环境同步流程更新过。

这时 Changes 视图会提示远端变化，但打开 diff 可能没有可见内容差异。

## 应该如何处理{#handle}

建议按以下顺序处理：

1. 先刷新 SuccApp 同步状态，确认变化仍然存在。
2. 确认这些变化是远端变化，不是本地变化或冲突。
3. 打开几个代表性文件的 diff，确认是否真的没有可见内容差异。
4. 如果服务器变化需要同步到本地，执行 **SuccApp: 拉取变化**（英文界面为 **SuccApp: Pull Changes**）。
5. 再次执行 **SuccApp: 刷新变化**（英文界面为 **SuccApp: Refresh Changes**），确认变化列表符合预期。

::: warning 注意
不要为了清空远端变化直接强制推送。远端变化表示服务器当前状态和本地基线不一致，生产环境或多人协作场景中，应先确认变化来源。
:::

## 什么时候需要继续排查{#troubleshoot}

如果出现大量远端变化，且不确定来源，可以继续检查：

1. 最近是否有人在浏览器设计器中保存过相关资源。
2. 是否执行过元数据升级、初始化、导入导出或环境同步脚本。
3. 当前工作区是否刚切换过服务器地址或连接到另一个环境。
4. 是否在生产发布前还没有连接生产服务器并刷新变化。

需要定位具体原因时，可以在 Output 面板的 SuccApp 日志通道中把日志级别切到 **Debug**，再刷新变化。日志中会记录远端变化的路径、类型、服务器版本、mirror 版本、修改时间和修改人，便于判断是内容变化、元数据变化，还是仅同步基线落后。

更多同步模型和操作说明，请阅读[修改、对比、拉取与推送](../workspace/sync-changes.md)。
