Skip to main content

Command Palette

Search for a command to run...

源站

克隆、推送和拉取

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}.git

GitHub 仍是唯一可信来源。向此远程仓库执行 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 上名为 originorigin/... 的分支。这是有意为之,以免同名的 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 的行为如下:

  1. 确认该 checkout 的 origin 远程仓库是一个 inbound 镜像的 Origin 仓库
  2. https://origin.cursor.com/{owner}/{repo}.git/local 上创建或更新名为 origin-local 的 git 远程仓库
  3. 将该远程仓库的 fetch 和 push refspec 限定为 refs/heads/origin/*
  4. 将所有本地 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-localgit 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

origin/ 开头的分支名

匹配的是 origin/ 之后的一个路径段。名称恰好为 origin 的分支属于保留名称,无法推送到 /local。像 original/backup 这样的名称同样不在该命名空间内。

在 inbound 镜像上:

  • 推送到 /local 仅接受 origin/<name> 引用,其余一律拒绝,并提示将该引用推送到上游远程仓库。
  • 从 GitHub fetch。 Inbound 同步会跳过 originorigin/*。这是有意为之:同名的 GitHub 分支不会覆盖你通过 origin push local 推送的内容。
  • 推送到克隆 URL。 git push origin origin/my-state 仍会把 origin/my-state 推送到 GitHub,但 Origin 在下次同步时不会导入该 GitHub 分支。
  • PR。 镜像仓库上的云端代理会基于你推送到 GitHub 的普通分支创建 GitHub PRorigin/* 分支并不存在于 GitHub 上,因此无法作为 GitHub PR 的 head。

Git 同样使用 origin/ 表示远程跟踪引用:origin/main 指的是 origin 远程仓库上的 main 分支。创建本地分支时请显式指定名称 (git branch origin/my-state HEADgit 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 不会导入它。同步会跳过名为 originorigin/... 的 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 页面。