> ## Documentation Index
> Fetch the complete documentation index at: https://docs.osmosis.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 同步

> 将 rollout 代码和 configs 从 workspace repository 同步到 Osmosis

## 概览

Git Sync 将平台 workspace 连接到 GitHub workspace repository。平台会读取该仓库中的 rollout 代码和配置，发现 `rollouts/` 下的 rollouts，并使其可用于训练。

您的本地 workspace directory 是同一仓库的 clone。Push 到默认分支即可同步修改。

## 仓库设置

<Steps>
  <Step title="创建或连接 workspace repository">
    workspace owners 和 admins 在平台中连接 GitHub，然后从 Osmosis workspace template 创建私有 workspace repository，或连接已有仓库。

    从平台创建的新仓库会包含 starter examples：`multiply-local-strands`、`multiply-local-openai` 和 `multiply-harbor-strands`。如需完整首次设置流程，请从 [Onboarding](/zh/platform/onboarding) 开始。
  </Step>

  <Step title="在本地 workspace directory 中工作">
    您的本地 workspace directory 应该是已连接 GitHub 仓库的 clone。被邀请的成员使用已有 workspace repository，而不是创建第二个仓库。
  </Step>

  <Step title="验证本地 context">
    在本地 workspace directory 中，确认 `origin` remote 指向已连接的 GitHub 仓库：

    ```bash theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/cli.json"]}}
    git remote get-url origin
    osmosis doctor
    ```
  </Step>
</Steps>

## 同步如何工作

* **Push 到默认分支** 会触发自动同步。
* 平台会发现 `rollouts/` 目录中的 rollout definitions。
* 每个 rollout 子目录（e.g. `rollouts/my-rollout/`）都会成为平台上的 rollout entity，可用于训练和评估。
* `configs/` 下的配置文件也会同步，因此 `osmosis train submit` 可以通过路径引用它们。
* 平台会记录同步历史，包括 commit SHA、author、message、status 和发现的 rollout 数量。

<Warning>
  Git Sync 是您 rollout 代码的 source of truth。CLI 会读取您传入的本地 TOML config 值，但 rollout 代码来自已同步的 workspace repository。提交代码修改前，请先 commit、push 并等待同步完成；需要特定已同步版本时，请设置 `commit_sha`。
</Warning>

## 同步状态

在平台的 **Git Integration** 中查看同步历史。每个同步事件会显示：

| State       | Meaning          |
| ----------- | ---------------- |
| **Pending** | 检测到 push，同步已排队   |
| **Syncing** | 平台正在处理仓库内容       |
| **Success** | 所有 rollouts 同步成功 |
| **Failed**  | 同步遇到错误，请查看日志了解详情 |

平台提供手动同步操作，可在不 push 新 commit 的情况下重新处理当前默认分支。

## 阻塞状态

当 GitHub 设置阻塞训练 workflow 时，平台会显示 banner。

| State                   | Effect                         | Fix                               |
| ----------------------- | ------------------------------ | --------------------------------- |
| No GitHub installation  | rollout 同步和训练设置无法继续。           | 从 **Git Integration** 连接 GitHub。  |
| No repository connected | 平台没有可同步的 workspace repository。 | 创建或连接 workspace repository。       |
| GitHub App disconnected | 训练任务会被阻塞，直到访问恢复。               | 重新连接 GitHub App。                  |
| Repository needs setup  | 仓库记录需要修复或替换。                   | 打开 **Git Integration** 并按照设置流程操作。 |

## 重要说明

* 只有 push 到默认分支才会触发自动同步。
* Push 到 feature branches 会被忽略，直到合并到默认分支。
* 如果仓库在 GitHub 上被重命名，请更新本地 `origin` remote，并检查平台连接。

<Tip>
  在 [training config](/zh/cli/config-files#training-config) 中使用 `commit_sha`，可将训练任务固定到特定 commit。
</Tip>

## 下一步

<CardGroup cols={2}>
  <Card title="Workspace Repository" icon="code-branch" href="/zh/cli/workspace/repository">
    了解本地 CLI 命令如何限定到某个仓库。
  </Card>

  <Card title="Training Runs" icon="play" href="/zh/platform/training-runs">
    在 Git Sync 成功后提交训练。
  </Card>
</CardGroup>
