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 でクローンする

同じメニューには、CLI 向けのセットアップ用 Origin CLI タブがあります。まずインストールしてサインインしてください。

curl -fsSL https://downloads.cursor.com/origin/install.sh | shorigin auth login

Origin CLI のインストールを参照してください。

認証

まだサインインしていない場合は、最初の git 操作の前に Origin CLI でサインインしてください。

origin auth login

その後、Git でクローン、フェッチ、プル、プッシュを行います。

既存のリポジトリにリモートを追加する

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 です。

ミラーリポジトリ上の forge-local ブランチ

ミラーリポジトリでは、origin/* ブランチは Origin のコピー上にある自分の workspace です。GitHub が利用できないときに作業を続けたい場合や、Origin にのみ残しておきたい git の状態がある場合に使用してください。これらのリファレンスは Origin 上に留まり、GitHub から同期されることも、GitHub へ同期されることもありません。

Origin は、origin または origin/... という名前の GitHub ブランチを同期しません。これは意図的な仕様であり、同名の GitHub ブランチが origin push local でプッシュした内容を上書きしないようにするためです。GitHub の Pull Requests にする予定の Feature branch には、通常どおり git push origin を使用します。

origin push local

origin push local はそうした Origin 専用のブランチを書き込みます。git push origin の代替ではありません。

git push origin <branch> はクローン URL を使用し、inbound ミラーでは GitHub に反映されます。一方、origin push local は次の処理を行います:

  1. チェックアウトの origin リモートが inbound ミラーリングされた Origin リポジトリであることを確認する
  2. https://origin.cursor.com/{owner}/{repo}.git/local を指す origin-local という名前の git remote を作成または更新する
  3. そのリモートの フェッチ および 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-local と git fetch origin-local は同じスコープ付き refspec を使用します。origin push local --dry-run は、実際に送信せずにプッシュ内容を表示します。--remote <name> で別のリモート名を指定できます。--remote origin や --remote github は指定しないでください。これらのリモートは GitHub をバックエンドとする upstream のままです。

origin リモートは、あらかじめ Origin を指している必要があります:

https://origin.cursor.com/{owner}/{repo}.git

/local は inbound ミラーにのみ存在します。Origin 上で直接作成したリポジトリでは、任意のブランチを origin にプッシュしてください。

origin/ で始まるブランチ名

マッチングの対象は origin/ の後ろのパスセグメントです。origin そのものという名前のブランチは予約されており、/local にプッシュできません。original/backup のような名前も、この namespace の対象外です。

inbound ミラーでの挙動は次のとおりです:

  • /local へのプッシュ。 受け付けられるのは origin/<name> のリファレンスのみです。それ以外はすべて拒否され、その リファレンス を上流のリモートへプッシュするよう促すメッセージが表示されます。
  • GitHub からのフェッチ。 inbound の同期では origin と origin/* はスキップされます。これは意図的な挙動で、その名前の GitHub ブランチが origin push local でプッシュした内容を上書きしないようにするためです。
  • クローン URL へのプッシュ。 git push origin origin/my-state は引き続き origin/my-state を GitHub に送信します。ただし Origin は次回の同期でその GitHub ブランチをインポートしません。
  • プルリクエスト。 ミラーリポジトリ上の cloud agents は、GitHub にプッシュした通常のブランチから GitHub の Pull Requests を作成します。origin/* ブランチは GitHub 上に存在しないため、GitHub プルリクエストの head にはできません。

git 自体も remote-tracking リファレンス に origin/ を使用します。origin/main は origin リモート上のブランチ main を指します。remote-tracking ブランチを誤って check out しないよう、ローカルブランチは明示的に名前を指定して作成してください(git branch origin/my-state HEAD または git switch -c origin/my-state)。

GitHub が利用できないとき、または git の状態を Origin のコピーだけに留めておきたいときです。origin/... ブランチを作成し、origin push local を実行してください。GitHub 側で扱いたい作業(プルリクエストを含む)には git push origin を実行してください。

いいえ。Origin 上のブランチ名はローカル名と同じです。git fetch origin-local はそれらを origin-local/origin/<name> として追跡しますが、これは git が remote-tracking リファレンス をそのように命名するためであり、Origin が prefix を取り除いたり書き換えたりしているわけではありません。

Origin はインポートしません。同期では origin または origin/... という名前の GitHub ブランチはスキップされるため、origin push local でプッシュした内容が上書きされることはありません。

最新の変更をプル

git pull origin main

トラブルシューティング

クローン または プッシュ に失敗する場合は、origin auth login でログイン済みであることを確認してください。Origin CLI のインストールを参照してください。

インストール後にシェルで command not found: origin と表示される場合は、~/.local/bin を PATH に追加してください (zsh の場合:~/.zshrc に export PATH="$HOME/.local/bin:$PATH" を追記し、source ~/.zshrc を実行します) 。詳細は CLI ページを参照してください。