PR 命令
Origin 目前处于早期 beta 版。您可以创建仓库、使用 git 推送和拉取、从 GitHub 镜像仓库、浏览和搜索代码、创建和合并 PR,并与您的 Cursor 团队共享。
请通过 hi@cursor.com 提交任何反馈,帮助我们改进产品。
origin pr 的所有子命令及其选项。有关 CLI 的其他命令,请参阅命令。有关 Origin 中 PR 的工作方式,请参阅PR。
指定 PR
PR 命令会根据当前检出中的 origin Git 远程仓库推断代码仓库。可使用 -R, --repo 以 org/name 格式指定。
大多数子命令接受可选的 [target]。数字会选中对应的 PR,其他内容会被视为分支名称。省略时,CLI 会使用当前分支对应的开放或草稿 PR:
origin pr view 13 # PR 13origin pr view my-branch # my-branch 对应的 PRorigin pr view # 当前分支对应的 PR子命令
| 子命令 | 描述 | 用法 | |
|---|---|---|---|
create | 在 Origin 仓库中创建 PR | origin pr create -t "Fix CI" | |
list | ls | 列出代码仓库中的 PR | origin pr list |
status | 显示代码仓库中与你相关的 PR | origin pr status | |
view [target] | 显示 PR,以及可选显示其 diff、检查或评论 | origin pr view 13 | |
diff [target] | 查看 PR 的 diff | origin pr diff | |
checks [target] | 显示 PR 的 CI 状态 | origin pr checks | |
checkout [target] | 获取并检出 PR 分支 | origin pr checkout 13 | |
edit [target] | 编辑标题、响应体或基准分支 | origin pr edit -t "New title" | |
ready [target] | 将草稿标记为可供评审 | origin pr ready | |
review [target] | 添加评审 | origin pr review --approve | |
comment [target] | 添加讨论评论 | origin pr comment -b "LGTM" | |
thread | 列出、解决、重新打开和回复评审线程 | origin pr thread list | |
merge [target] | 合并 PR | origin pr merge | |
close [target] | 关闭 PR | origin pr close | |
reopen [target] | 重新打开已关闭的 PR | origin pr reopen | |
refresh [target] | 根据当前引用创建新版本快照 | origin pr refresh |
推送到 head 分支会自动创建新版本快照。仅当 origin pr view 或 origin pr checks 仍显示之前的 head 提交时,才运行 origin pr refresh。如果已解析的提交与最新版本一致,该命令不会执行任何操作。
origin pr review 会提交正式评审。origin pr comment 会添加讨论评论。origin pr view --comments 会同时列出两者。
创建
| 选项 | 描述 |
|---|---|
-t, --title <title> | PR 标题 |
-b, --body <body> | PR 响应体 |
--description <text> | PR 描述 |
-F, --body-file <path> | 从文件读取响应体。使用 - 表示标准输入 |
-H, --head <branch> | 包含您的提交的分支 (默认值:当前分支) |
-B, --base <branch> | 要将您的代码合并到的分支 (默认值:仓库默认分支) |
--push | 如果 head 分支尚未推送到远程,则直接推送,无需提示 |
--remote <remote> | head 分支尚未推送到远程时要推送到的远程仓库 (默认值:origin) |
--status <status> | 初始状态:draft 或 open (默认值:draft) |
-d, --draft | 创建为草稿,等同于 --status draft |
-f, --fill | 使用提交信息作为标题和响应体 |
--fill-first | 使用首次提交的信息作为标题和响应体 |
列出和查看状态
| 命令 | 选项 | 描述 |
|---|---|---|
list | -s, --state <state> | 按状态筛选:open、closed、merged、draft 或 all (默认值:open) |
list | --mine | 仅显示您创建的 PR |
list | -B, --base <branch> | 按基准分支筛选 |
list | -H, --head <branch> | 按 head 分支筛选 |
list | --file <path> | 按已更改的路径筛选。可重复指定;末尾的 / 匹配文件夹前缀 |
list | -L, --limit <number> | 要获取的最大项数 (默认值:30) |
list | --json <fields> | 输出包含指定字段的 JSON,例如 number,title,status |
list | -q, --jq <expression> | 使用 jq 表达式筛选 JSON 输出。需要 --json |
status | -c, --conflict-status | 显示每个 PR 的合并冲突状态 |
查看、diff 和检查
| 命令 | 选项 | 描述 |
|---|---|---|
view | --diff | 显示所选版本收集到的补丁 diff |
view | --checks | 包含可合并性和 CI 摘要 |
view | -c, --comments | 显示评论和评审,以及各线程的解决状态 |
view | --name-only | 配合 --diff 使用时,仅输出修改的文件路径 |
view | --exclude <glob> | 排除匹配 glob 的路径。可重复指定 |
view | -w, --web | 在浏览器中打开 PR |
view | --change-version <number> | 要显示的版本 (默认值:最新) |
view | --json <fields> | 输出包含所列字段的 JSON。单独使用 --json 会列出可用字段 |
view | -q, --jq <expression> | 使用 jq 表达式筛选 JSON 输出。需要 --json |
diff | --patch | 以补丁格式显示 diff |
diff | --name-only | 仅输出修改的文件路径 |
diff | -e, --exclude <glob> | 排除匹配 glob 的文件。可重复指定 |
checks | --watch | 持续检查,直至完成 |
checks | --json <fields> | 输出包含所列字段的 JSON |
checks | -q, --jq <expression> | 使用 jq 表达式筛选 JSON 输出。需要 --json |
list、status、view、diff 和 checks 也接受 --color <always|never|auto> (默认值:auto) 。
--diff、--checks 和 --comments 仅影响 origin pr view 的纯文本输出。对于 JSON,请改为请求所需字段,例如 files、mergeability、ciState、comments 或 threads。
Checkout、编辑和生命周期
| 命令 | 选项 | 描述 |
|---|---|---|
checkout | -b, --branch <name> | 要使用的本地分支名称 (默认值:PR 的 head 引用) |
checkout | --detach | 以分离 HEAD 的方式 checkout |
checkout | -f, --force | 将现有本地分支重置为最新状态 |
checkout | --remote <remote> | 要从中 fetch 的远程仓库 (默认值:origin) |
edit | -t, --title <title> | 设置新标题 |
edit | -b, --body <body> | 设置新的正文 |
edit | -F, --body-file <path> | 从文件读取新的正文。使用 - 表示标准输入 |
edit | -B, --base <branch> | 更改基准分支 |
ready | --undo | 将 PR 转回草稿状态 |
merge | --auto | 条件满足后自动合并并返回 |
merge | --disable-auto | 关闭此 PR 的就绪后合并功能 |
close | -c, --comment <body> | 留下关闭评论 |
reopen | -c, --comment <body> | 添加重新打开评论 |
评审和评论
| 命令 | 选项 | 描述 |
|---|---|---|
review | -a, --approve | 批准 PR |
review | -c, --comment | 以评论形式提交评审 |
review | -b, --body <body> | 评审正文文本 |
review | -F, --body-file <path> | 从文件读取评审正文。使用 - 表示标准输入 |
review | --change-version <number> | 要评审的版本 (默认值:最新) |
comment | -b, --body <body> | 评论正文文本 |
comment | -F, --body-file <path> | 从文件读取评论正文。使用 - 表示标准输入 |
评审线程
每条评审评论都属于一个线程,并各自具有解决状态。
| 子命令 | 描述 | 用法 |
|---|---|---|
thread list [target] | 列出线程及其解决状态 | origin pr thread list --unresolved |
thread resolve <thread-id> [target] | 将线程标记为已解决 | origin pr thread resolve t_123 |
thread reopen <thread-id> [target] | 重新打开已解决的线程 | origin pr thread reopen t_123 |
thread reply <thread-id> [target] | 向线程添加评论 | origin pr thread reply t_123 -b "Fixed" |
| 命令 | 选项 | 描述 |
|---|---|---|
list | --unresolved | 仅显示未解决的线程 |
list | -c, --comments | 打印每条评论的完整内容,而非开头摘录 |
list | --change-version <number> | 仅显示针对该版本提交的线程 (默认值:所有版本) |
list | --json <fields> | 使用指定字段输出 JSON,例如 id,resolved,path |
list | -q, --jq <expression> | 使用 jq 表达式筛选 JSON 输出。需要 --json |
reply | -b, --body <body> | 回复正文文本 |
reply | -F, --body-file <path> | 从文件读取回复正文。使用 - 表示标准输入 |
需检查“所有线程均已解决”的脚本可使用 origin pr thread list --unresolved --json id --jq length。
获取帮助信息
每个子命令都支持 --help:
origin pr --helporigin pr create --helporigin pr thread --help