# 发布到 Git

审阅文件差异，发布 Commit 或 Pull Request。

import ContentVideo from '../../../components/content/ContentVideo.astro';

## 保存不等于发布

明确发布前，草稿保存在 Prosefly 工作区。保存草稿不会修改仓库。发布后的内容是仓库中的普通文件。

## 审阅差异

从编辑器打开发布审阅，检查全部受影响文件，包括存在的导航配置。确认仓库、目标分支、文件路径和发布模式。

审阅会建议标题和 Markdown 描述，提交前可以修改。发布过程中发生的新编辑不会被悄悄纳入已审阅的快照。

<figure>
  <img
    src="/images/review-publication.png"
    alt="在发布审阅中检查文件差异，并确认 Pull Request 的信息。"
    width="2800"
    height="1858"
    loading="lazy"
  />
  <figcaption>在发布审阅中检查文件差异，并确认 Pull Request 的信息。</figcaption>
</figure>

## 选择发布流程

- **Commit**：将审阅过的变更写入配置的目标分支。
- **Pull Request**：创建包含变更的分支和 GitHub PR，合并后更新目标分支。

发布模式由 Space 设置决定。GitHub App 写入权限与仓库分支保护必须允许所选流程。

<ContentVideo
  src="https://media.prosefly.com/_video/prosefly-pull-request.mp4"
  caption="从审阅文件差异，到 Pull Request 合并。"
/>

## 跟进结果

发布记录显示操作者、目标、状态，并链接 GitHub 结果。PR 最初处于等待合并状态。刷新历史可检查未完成 PR，并非持续后台轮询。

发布到 Git 不会直接部署网站。变更到达预期分支后，由原有构建和托管流程部署。

<figure>
  <img
    src="/images/publish-history.png"
    alt="发布记录显示每次发布的状态，并提供对应的 GitHub 链接。"
    width="2800"
    height="1858"
    loading="lazy"
  />
  <figcaption>发布记录显示每次发布的状态，并提供对应的 GitHub 链接。</figcaption>
</figure>

## 处理外部变更

已有草稿的 Git 基础版本发生变化时，需要比较原始基础版本、当前 Git 内容和草稿，解决冲突后再发布。Prosefly 不会强制覆盖并发仓库变更，也不会自动合并冲突文档。

外部仓库变更后需要扫描以刷新内容索引。发布与扫描是独立操作。
