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 13
origin pr view my-branch # my-branch 对应的 PR
origin 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 --help
origin pr create --help
origin pr thread --help