百积木文档
开发指南

选择工作区并获取项目

确认工作区、项目、Git main 写入策略和环境边界,通过百积木 CLI 检出平台项目。

开发开始前必须确定源码属于哪个工作区和项目。对于百积木平台项目,平台项目 Git 是源事实,本地目录只是开发检出;不要用一个本地目录代替平台项目生命周期。

确认工作区和项目

先回读默认工作区,再列出该工作区的项目:

baijimu workspace current
baijimu project list <workspaceId>
baijimu project get <projectId>

核对项目名称、项目类型和工作区归属。不要根据目录名猜测项目 ID,也不要把测试工作区中的同名项目当成生产项目。

工作区选择与平台健康是两件事

已有项目属于哪个工作区,就使用该工作区。只有用户明确需要独立的成员、权限、计费、数据隔离或产品归属,或者目标项目尚无合适工作区时,才新建工作区;不要因为网络、DNS 或某个非官方域名不可访问就建议新建工作区。

平台访问状态只通过当前 CLI 的认证状态和目标命令验证:运行 baijimu auth status --verify, 再读取目标命令的分级 --help 并执行目标查询。Bundle 市场操作由 CLI 通过 https://api.baijimu.com 的统一 Partner API 完成;bundle-market.baijimu.com 是已退役入口, DNS 不解析不是 Bundle 市场故障,也不能据此判断 CLI 需要升级。只有本机帮助缺少所需命令, 或实际命令明确报告版本不兼容时,才按版本契约处理升级。

读取项目分支策略

先读取项目当前的 main 写入策略:

baijimu project branch-policy get <projectId> \
  --workspace-id <workspaceId>
  • DIRECT 是默认模式:有项目 Git 写权限的成员可以快进直推 main
  • PROTECTED 是显式开启的保护模式:成员必须推个人分支,再通过平台合并。

项目权限和分支策略是两个独立校验。不要因为用户已加入项目就假设能够直推,也不要因为另一个项目受保护就假设当前项目同样受保护。完整设计见项目:Git main 写入策略

如果本机 CLI 没有 project branch-policy,先运行 baijimu --version 和对应命令的 --help,使用该版本的固定文档或升级 CLI,不要猜测策略和参数。

检出平台项目

使用 CLI 按项目当前策略检出平台 canonical Git 仓库:

baijimu project checkout <projectId> \
  --workspace-id <workspaceId> \
  --directory <projectDirectory>

目标目录必须尚不存在,CLI 不会覆盖现有目录。检出成功后进入输出中的目录,核对工作树和分支:

cd <projectDirectory>
git status
git branch --show-current
git remote -v

DIRECT 项目默认检出 mainPROTECTED 项目默认创建并检出当前用户的 codex/<userId>/<branch> 个人分支。只有明确需要自定义个人分支名时才按本机帮助增加 --branch

打开项目前检查

确认以下信息后再启动 Codex:

对象必须确认的事实
工作区baijimu workspace current 返回目标工作区。
项目baijimu project get <projectId> 返回预期项目及类型。
本地目录当前目录是刚检出的项目,不是另一个同名仓库。
Git 策略与分支已读取实际策略;DIRECT 使用 mainPROTECTED 使用 CLI 创建的个人分支。
环境开发、测试或生产目标由项目自己的发布流程明确选择。
项目规则阅读仓库根目录及当前子目录适用的 AGENTS.md

本地仓库与平台项目不是同一个状态

切换 CLI 默认工作区不会改变已经检出的仓库。切换项目时应打开对应目录;切换工作区后继续使用旧目录前,必须核对仓库配置、项目归属和目标环境。

提交平台项目

完成开发和验证后,先查看差异并提交:

git status
git diff
git add <files>
git commit -m "<message>"

DIRECT 项目

同步远端 main,确认本地可以快进更新,再直接推送:

git switch main
git pull --ff-only origin main
git push origin main

远端已有新提交时,先处理并发变化后重新推送。任何情况下都不要强推、非快进覆盖或删除 main

PROTECTED 项目

推送当前个人分支,回读远端分支和 main 提交,再通过平台的原子合并接口更新受保护的 main

git push origin <sourceBranch>
baijimu project branches <projectId> --workspace-id <workspaceId>
baijimu project merge <projectId> <sourceBranch> \
  --workspace-id <workspaceId> \
  --expected-main <mainCommit>

有项目 Git 写权限的用户可以合并自己的个人分支,不要求另一位成员代为操作。参数以本机 baijimu project merge --help 为准。

无论采用哪种策略,直推或合并只更新项目 Git,并不等于构建、发布、安装或正式环境验证;后续动作必须按项目类型执行。

下一步阅读使用 Codex 开发

本页内容