克隆、推送和拉取
Origin 目前以早期 beta 版发布。你可以创建仓库、使用 Git 推送和拉取、从 GitHub 镜像、浏览和搜索代码、打开和合并 PR,以及与 Cursor 团队共享。
请通过 hi@cursor.com 提交任何反馈,帮助我们改进产品。
Origin 支持标准 Git 操作。打开 cursor.com/codebase 中的仓库,点击绿色的 代码 下拉菜单,然后复制克隆 URL。
通过 HTTPS 克隆
代码菜单中包含 HTTPS 选项卡:
https://origin.cursor.com/{owner}/{repo}.git示例:
git clone https://origin.cursor.com/acme/checkout.git使用 Origin CLI 克隆
同一菜单中还有一个 Origin CLI 选项卡,用于通过 CLI 进行设置。请先安装并登录:
curl -fsSL https://downloads.cursor.com/origin/install.sh | shorigin auth login请参阅安装 Origin CLI。
认证
如果尚未登录,请在首次执行 Git 操作前使用 Origin CLI 登录:
origin auth login然后使用 git 执行 clone、fetch、pull 或 push 操作。
为现有仓库添加远程仓库
git remote add origin https://origin.cursor.com/{owner}/{repo}.gitgit push -u origin main在评估期间,同时保留 GitHub 和 Origin:
git remote set-url --add --push origin https://github.com/acme/checkout.gitgit remote set-url --add --push origin https://origin.cursor.com/acme/checkout.git如需将 GitHub 的完整提交历史复制到 Origin,建议使用镜像。
从 GitHub 镜像的仓库
从 GitHub 镜像的仓库使用相同的 HTTPS 克隆 URL:
https://origin.cursor.com/{owner}/{repo}.gitGitHub 仍是唯一可信来源。向此远程仓库执行 git push 会推送至 GitHub。GitHub 接受推送后,origin 会更新。
当 GitHub 不可用时,可通过 origin/* 分支和 origin push local 继续在 Origin 副本上工作。对于已同步的仓库,仍可通过同一 HTTPS 克隆 URL 进行读取。Git LFS batch 不会进行故障转移。GitHub 中断期间,/local 是受支持的写入路径。
镜像仓库上的代码托管平台本地分支
在镜像仓库上,origin/* 分支是你在 Origin 副本上的工作区。GitHub 不可用时可以用它们继续工作,也可以用来保存任何你只想留在 Origin 上的 git 状态。这些引用只存在于 Origin 上,既不会从 GitHub 同步过来,也不会同步到 GitHub。
Origin 不会同步 GitHub 上名为 origin 或 origin/... 的分支。这是有意为之,以免同名的 GitHub 分支覆盖你通过 origin push local 推送的内容。需要提交为 GitHub PR 的功能分支,仍然使用常规的 git push origin。
origin push local
origin push local 写入的是这些仅存在于 Origin 的分支,它不能替代 git push origin。
git push origin <branch> 使用克隆 URL,在 inbound 镜像上会合入到 GitHub。而 origin push local 的行为如下:
- 确认该 checkout 的
origin远程仓库是一个 inbound 镜像的 Origin 仓库 - 在
https://origin.cursor.com/{owner}/{repo}.git/local上创建或更新名为origin-local的 git 远程仓库 - 将该远程仓库的 fetch 和 push refspec 限定为
refs/heads/origin/* - 将所有本地
origin/*分支推送到/local
Origin 不会改写名称。origin/my-state 会存储为 refs/heads/origin/my-state。
git branch origin/my-state HEADorigin push local首次运行后,git remote -v 会包含:
origin-local https://origin.cursor.com/{owner}/{repo}.git/local (fetch)origin-local https://origin.cursor.com/{owner}/{repo}.git/local (push)git push origin-local 和 git fetch origin-local 会使用相同的限定 refspec。origin push local --dry-run 只打印推送内容,不会实际发送。--remote <name> 可指定其他远程仓库名称。请勿传入 --remote origin 或 --remote github;这些远程仓库仍保持为基于 GitHub 的上游。
origin 远程仓库必须已指向 Origin:
https://origin.cursor.com/{owner}/{repo}.git/local 仅存在于 inbound 镜像上。对于直接在 Origin 上创建的仓库,可将任意分支推送到 origin。
/local 需按代码仓库分别启用。如果 git 报告找不到该代码仓库,说明尚未为该仓库启用此 endpoint。针对单个引用的 remote rejected 消息表示服务器拒绝了 origin/ 之外的引用。
以 origin/ 开头的分支名
匹配的是 origin/ 之后的一个路径段。名称恰好为 origin 的分支属于保留名称,无法推送到 /local。像 original/backup 这样的名称同样不在该命名空间内。
在 inbound 镜像上:
- 推送到
/local。 仅接受origin/<name>引用,其余一律拒绝,并提示将该引用推送到上游远程仓库。 - 从 GitHub fetch。 Inbound 同步会跳过
origin和origin/*。这是有意为之:同名的 GitHub 分支不会覆盖你通过origin push local推送的内容。 - 推送到克隆 URL。
git push origin origin/my-state仍会把origin/my-state推送到 GitHub,但 Origin 在下次同步时不会导入该 GitHub 分支。 - PR。 镜像仓库上的云端代理会基于你推送到 GitHub 的普通分支创建 GitHub PR。
origin/*分支并不存在于 GitHub 上,因此无法作为 GitHub PR 的 head。
Git 同样使用 origin/ 表示远程跟踪引用:origin/main 指的是 origin 远程仓库上的 main 分支。创建本地分支时请显式指定名称 (git branch origin/my-state HEAD 或 git switch -c origin/my-state) ,以免误 check out 远程跟踪分支。
当 GitHub 不可用时,或者当你希望 git 状态仅保留在 Origin 副本上时。创建一个 origin/... 分支并运行 origin push local。若希望把工作放到 GitHub 上 (包括 PR) ,请运行 git push origin。
不会。Origin 上的分支名与本地名称一致。git fetch origin-local 会把它们跟踪为 origin-local/origin/<name>,这只是 git 命名远程跟踪引用的方式,并非 Origin 去除或改写了 prefix。
Origin 不会导入它。同步会跳过名为 origin 或 origin/... 的 GitHub 分支,因此它们不会覆盖你通过 origin push local 推送的内容。
拉取最新更改
git pull origin main疑难排查
如果克隆或推送失败,请确认已使用 origin auth login 登录。请参阅安装 Origin CLI。
如果安装后 shell 提示 command not found: origin,请将 ~/.local/bin 添加到 PATH (对于 zsh:将 export PATH="$HOME/.local/bin:$PATH" 追加到 ~/.zshrc,然后执行 source ~/.zshrc) 。详见 CLI 页面。