---
title: 不小心把我的修改搞丢了，怎么找回来
navTitle: 找回丢失修改
---
# 不小心把我的修改搞丢了，怎么找回来

先不要继续 push、pull 或重置项目。越早停止操作，找回修改的可能性越高。

## 先确认丢失范围{#scope}

先确认：

1. 丢失的是本地文件修改，还是服务器上的修改。
2. 文件是否已经提交过 Git。
3. 文件是否曾经推送到服务器。
4. 是否执行过拉取、放弃修改、从服务器重置本地项目或 Git 回退。

## 按顺序查找{#steps}

建议按以下顺序找回：

1. 查看 Git 历史和本地未提交记录。
2. 查看 VS Code 本地文件历史。
3. 查看 SuccApp 文件历史，确认服务器是否曾保存过对应版本。
4. 检查 `.succapp/merge-backup/` 中是否有合并前备份。
5. 检查 `.succapp/remote/` 中的服务器基线是否仍保留旧内容。

::: warning 注意
`.succapp/remote/` 是同步基线，不是正式备份目录。只在排查时参考，不建议直接编辑其中内容。
:::

## 已提交 Git 的修改{#git}

如果修改已经提交到 Git，可以通过 Git 历史找回。找回后刷新 SuccApp 同步状态，再决定是否推送到服务器。

常用排查方式：

```bash
git status
git log --oneline --decorate -- path/to/file
git show <commit>:path/to/file
git reflog
```

建议先用 `git show` 查看历史内容，确认是需要的版本后再恢复到工作区。恢复时优先复制需要的片段，避免整文件覆盖掉当前有效修改。需要回退整文件时，先和项目负责人确认风险。

## 已推送到服务器的修改{#server-history}

如果修改曾经推送到服务器，可以在服务器文件历史中查找对应版本。找到后先对比内容，再决定是否恢复。

在 SuccApp 中可以按下面顺序排查：

1. 在项目树中选中目标文件。
2. 打开文件历史或服务器历史视图。
3. 找到丢失前的版本。
4. 先使用对比功能确认差异。
5. 将需要恢复的内容保存到本地工作区。
6. 刷新变化视图，确认恢复后的差异只包含目标内容。

不要在未对比的情况下直接覆盖服务器版本。多人协作时，先确认服务器上是否已经有其他人的新修改。

## 刚刚拉取或处理冲突后丢失{#merge-backup}

如果是在 pull 或冲突处理后发现内容丢失，可以检查 `.succapp/merge-backup/` 是否保存了合并前的本地文件备份。

`.succapp/merge-backup/` 用于保存部分同步或合并操作前的本地备份。恢复时按下面方式处理：

1. 先复制 `.succapp/merge-backup/` 中疑似相关文件到临时目录。
2. 用 VS Code 或 diff 工具和当前工作区文件对比。
3. 只把确认需要的片段合并回正式文件。
4. 保存后刷新 SuccApp 变化视图。
5. 验证无误后再提交 Git 或推送服务器。

不要直接把整个 `.succapp/merge-backup/` 目录复制回项目目录。备份文件可能对应旧基线，也可能只适合人工对比。

## 找回后怎么做{#after}

找回后建议：

1. 先保存到本地文件。
2. 刷新 SuccApp 同步状态。
3. 查看 diff，确认只恢复了需要的内容。
4. 推送测试服务器验证。
5. 提交 Git。

如果不确定应该恢复哪个版本，先联系项目负责人，不要直接覆盖服务器。
