Skip to main content

Command Palette

Search for a command to run...

Origem

Clonar, Push & Pull

O Origin funciona com o Git padrão. Abra um repositório em cursor.com/codebase, selecione o menu suspenso verde Code e copie a URL de clonagem.

Clonar via HTTPS

O menu Code inclui uma aba HTTPS:

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

Exemplo:

git clone https://origin.cursor.com/acme/checkout.git

Clonar usando a CLI do Origin

O mesmo menu tem uma aba CLI do Origin com configuração para a CLI. Primeiro, instale e faça login:

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

Consulte Instalar a CLI do Origin.

Autenticar

Faça login na CLI do Origin antes de realizar a primeira operação do Git, caso ainda não tenha feito isso:

origin auth login

Depois, faça clone, consulte, faça pull ou push com o Git.

Adicione um remoto a um repositório existente

git remote add origin https://origin.cursor.com/{owner}/{repo}.gitgit push -u origin main

Para manter o GitHub e a Origin em paralelo durante a avaliação:

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

Para copiar todo o histórico do GitHub para o Origin, prefira o espelhamento.

Repositórios do GitHub espelhados

Um repositório espelhado do GitHub usa a mesma URL HTTPS de clonagem:

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

O GitHub continua sendo a fonte da verdade. O git push para este remoto é enviado ao GitHub. A origin é atualizada depois que o GitHub aceita o push.

Quando o GitHub estiver indisponível, continue trabalhando na cópia da Origin com branches origin/* e origin push local. Leituras de um repositório já sincronizado ainda podem funcionar pela mesma URL HTTPS de clonagem. O batch do Git LFS não tem failover. /local é o caminho de gravação suportado enquanto o GitHub estiver fora do ar.

Branches forge-local em repositórios espelhados

Em um repositório espelhado, os branches origin/* são o seu espaço de trabalho na cópia do Origin. Use-os para continuar trabalhando quando o GitHub estiver indisponível ou para qualquer outro estado do git que você queira manter apenas no Origin. Essas referências do Git permanecem no Origin: elas nunca sincronizam a partir do GitHub nem para o GitHub.

O Origin não sincroniza branches do GitHub com o nome origin ou origin/.... Isso é intencional, para que um branch do GitHub com esse nome não sobrescreva o que você enviou com origin push local. Os feature branches que devem virar pull requests no GitHub continuam usando um git push origin normal.

origin push local

O origin push local grava esses branches exclusivos do Origin. Ele não substitui o git push origin.

O git push origin <branch> usa a URL de clonagem e, em um espelho inbound, chega ao GitHub. Já o origin push local faz o seguinte:

  1. Confirma que o remoto origin do checkout é um repositório Origin espelhado de forma inbound
  2. Cria ou atualiza um remoto do Git chamado origin-local em https://origin.cursor.com/{owner}/{repo}.git/local
  3. Restringe os refspecs de consultar e push desse remoto a refs/heads/origin/*
  4. Faz push de todos os branches locais origin/* para /local

O Origin não reescreve o nome. origin/my-state é armazenado como refs/heads/origin/my-state.

git branch origin/my-state HEADorigin push local

Após a primeira execução, git remote -v inclui:

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 e git fetch origin-local usam o mesmo refspec com escopo. origin push local --dry-run exibe o push sem enviá-lo. --remote <name> escolhe um nome de remoto diferente. Não passe --remote origin nem --remote github; esses remotos continuam sendo o upstream vinculado ao GitHub.

O remoto origin já deve apontar para o Origin:

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

/local existe apenas em espelhos inbound. Em um repositório criado diretamente no Origin, faça push de qualquer branch para origin.

Nomes de branch que começam com origin/

A correspondência é feita em um segmento de path após origin/. Um branch chamado exatamente origin é reservado e não pode receber push para /local. Um nome como original/backup também está fora do namespace.

Em mirrors inbound:

  • Push para /local. Somente refs origin/<name> são aceitas. Todo o restante é rejeitado com uma message pedindo que você faça o push dessa ref para o remoto upstream.
  • Consultar do GitHub. A sincronização inbound ignora origin e origin/*. Isso é proposital: um branch do GitHub com esse nome não pode sobrescrever o que você enviou com origin push local.
  • Push para a URL de clonagem. git push origin origin/my-state ainda envia origin/my-state para o GitHub. O Origin não vai importar esse branch do GitHub na próxima sincronização.
  • Pull requests. Agentes em nuvem em um repositório espelhado abrem GitHub pull requests a partir de branches comuns que você envia ao GitHub. Um branch origin/* não está no GitHub, portanto não pode ser o head de um GitHub pull request.

O git também usa origin/ para refs de remoto-tracking: origin/main significa o branch main no remoto origin. Crie o branch local com um nome explícito (git branch origin/my-state HEAD ou git switch -c origin/my-state) para não fazer check out do branch de remoto-tracking por engano.

Quando o GitHub estiver indisponível, ou sempre que você quiser o estado do git apenas na cópia do Origin. Crie um branch origin/... e execute origin push local. Para trabalhos que você quer no GitHub, incluindo pull requests, execute git push origin.

Não. O nome do branch no Origin é o mesmo nome local. git fetch origin-local os rastreia como origin-local/origin/<name> porque é assim que o git nomeia refs de remoto-tracking, e não porque o Origin remove ou reescreve o prefix.

O Origin não importa esse branch. A sincronização ignora branches do GitHub chamados origin ou origin/..., para que não possam sobrescrever o que você enviou com origin push local.

Fazer pull das atualizações mais recentes

git pull origin main

Solução de problemas

Se o clone ou o push falhar, confirme se você iniciou sessão com origin auth login. Consulte Instalar a CLI do Origin.

Se o shell informar command not found: origin após a instalação, adicione ~/.local/bin ao seu PATH (no zsh: acrescente export PATH="$HOME/.local/bin:$PATH" a ~/.zshrc e execute source ~/.zshrc). Os detalhes estão na página da CLI.