# 内容归属

你的仓库是已发布内容的最终来源。

**内容保存在你自己的 Git 仓库中。** Prosefly 将 Markdown 和 MDX 文件发布回仓库，保留内容路径及支持的 frontmatter 格式。

## 文件、草稿与媒体

| 内容                   | 保存位置                             | 何时写入 Git                      |
| ---------------------- | ------------------------------------ | --------------------------------- |
| 已发布文本             | 你的 GitHub 仓库文件                 | 发布 Commit，或已发布的 PR 合并后 |
| 未发布草稿             | Prosefly 工作区                      | 只有明确发布时                    |
| 导航变更               | 草稿在工作区；发布后在仓库原生配置中 | 包含在发布操作时                  |
| 上传的图片、音频和视频 | 托管媒体库                           | 文档可以引用其公开 URL            |

保存草稿不会产生 Git 提交。Pull Request 的变更先保存在它的分支上，合并后才会更新目标分支。

## 不同的存储模型

[Sanity Content Lake](https://www.sanity.io/docs/content-lake) 将结构化内容保存在其数据存储中。[Payload](https://payloadcms.com/docs/database/overview) 通过数据库适配器使用配置的数据库，并围绕数据提供 API。Payload 可以自行托管；这里比较的是内容格式与存储模型，而不是数据库属于谁。

Prosefly 的已发布文本是仓库里的文件。网站继续通过已有内容管线读取文件，无需在每次渲染页面时查询 Prosefly。

## 继续使用熟悉的工具

已发布文件可以继续在 GitHub 或代码编辑器中修改，历史保留在 Git 中。外部变更后需要扫描仓库，更新 Prosefly 中的内容视图。

如果外部变更影响已有草稿的条目，请比较原始基础版本、当前 Git 版本与草稿后解决冲突。Prosefly 不会自动合并冲突内容。

## 保留完整副本

使用平常的 Git 流程备份仓库。未发布草稿和托管媒体独立于仓库：按需要导出草稿 Markdown 或发布内容，并保留原始媒体副本。Prosefly 使用权益结束后，已发布文件仍然保留在 Git 中。
