Skip to main content

Command Palette

Search for a command to run...

Origen

Clonar, hacer push y actualizar

Origin funciona con Git estándar. Abre un repositorio en cursor.com/codebase, selecciona el menú desplegable verde código y copia la URL de clonación.

Clonar con HTTPS

El menú Código incluye la pestaña HTTPS:

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

Ejemplo:

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

Clonar con CLI de Origin

El mismo menú incluye una pestaña de CLI de Origin con opciones de configuración para la CLI. Primero instala e inicia sesión:

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

Consulta cómo instalar la CLI de Origin.

Autenticación

Inicia sesión en la CLI de Origin antes de realizar la primera operación de git si aún no lo has hecho:

origin auth login

Luego, clona, obtén, descarga o sube cambios con Git.

Añadir un repositorio remoto a un repo existente

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

Para mantener GitHub y Origin en paralelo durante la evaluación:

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 el historial de GitHub a Origin, se recomienda la replicación.

Repositorios de GitHub replicados

Un repositorio replicado desde GitHub usa la misma URL de clonación por HTTPS:

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

GitHub sigue siendo la fuente de referencia. Al ejecutar git push en este remoto, los cambios se envían a GitHub. Origin se actualiza después de que GitHub acepta el hacer push.

Cuando GitHub no está disponible, sigue trabajando sobre la copia de Origin con las ramas origin/* y origin push local. Las lecturas de un repo ya sincronizado pueden seguir funcionando mediante la misma URL de clonación por HTTPS. Git LFS en lote no admite conmutación por error. /local es la ruta de escritura admitida mientras GitHub está caído.

Ramas forge-local en repositorios replicados

En un repositorio replicado, las ramas origin/* son tu espacio de trabajo en la copia de Origin. Úsalas para seguir trabajando cuando GitHub no esté disponible, o para cualquier otro estado de git que quieras mantener solo en Origin. Esas referencias permanecen en Origin: nunca se sincronizan desde GitHub ni hacia GitHub.

Origin no sincroniza ramas de GitHub llamadas origin ni origin/.... Esto es intencional, para que una rama de GitHub con ese nombre no pueda sobrescribir lo que hiciste push con origin push local. Las ramas de funcionalidad que deban convertirse en pull request de GitHub siguen usando un git push origin normal.

origin push local

origin push local escribe esas ramas exclusivas de Origin. No sustituye a git push origin.

git push origin <branch> usa la URL de clonación y, en una réplica entrante, termina en GitHub. origin push local, en cambio, hace lo siguiente:

  1. Confirma que el remoto origin del checkout es un repositorio de Origin replicado de forma entrante
  2. Crea o actualiza un git remote llamado origin-local en https://origin.cursor.com/{owner}/{repo}.git/local
  3. Limita los refspecs de obtención y push de ese remoto a refs/heads/origin/*
  4. Hace push de todas las ramas locales origin/* a /local

Origin no reescribe el nombre. origin/my-state se almacena como refs/heads/origin/my-state.

git branch origin/my-state HEADorigin push local

Tras la primera ejecución, git remote -v incluye:

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 y git fetch origin-local usan el mismo refspec acotado. origin push local --dry-run muestra el push sin enviarlo. --remote <name> permite elegir otro nombre de remoto. No pases --remote origin ni --remote github; esos remotos siguen siendo el upstream respaldado por GitHub.

El remoto origin ya debe apuntar a Origin:

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

/local solo existe en réplicas entrantes. En un repositorio creado directamente en Origin, haz push de cualquier rama a origin.

Nombres de rama que empiezan por origin/

La coincidencia se aplica al segmento de ruta que sigue a origin/. Una rama llamada exactamente origin está reservada y no se puede enviar a /local. Un nombre como original/backup también queda fuera del espacio de nombres.

En réplicas entrantes:

  • Hacer push a /local. Solo se aceptan referencias origin/<nombre>. Todo lo demás se rechaza con un mensaje que indica que hagas push de esa referencia al remoto upstream.
  • Obtener desde GitHub. La sincronización entrante omite origin y origin/*. Esto es intencionado: una rama de GitHub con ese nombre no puede sobrescribir lo que hiciste push con origin push local.
  • Hacer push a la URL de clonación. git push origin origin/my-state sigue enviando origin/my-state a GitHub. Origin no importará esa rama de GitHub en la siguiente sincronización.
  • Pull requests. Los agentes en la nube de un repositorio replicado abren pull requests de GitHub a partir de ramas normales que envías a GitHub. Una rama origin/* no está en GitHub, por lo que no puede ser la cabecera de un pull request de GitHub.

Git también usa origin/ para las referencias de seguimiento remoto: origin/main significa la rama main en el remoto origin. Crea la rama local con un nombre explícito (git branch origin/my-state HEAD o git switch -c origin/my-state) para no hacer checkout de la rama de seguimiento remoto por error.

Cuando GitHub no esté disponible, o siempre que quieras que el estado de git exista solo en la copia de Origin. Crea una rama origin/... y ejecuta origin push local. Para el trabajo que quieras tener en GitHub, incluidos los pull requests, ejecuta git push origin.

No. El nombre de la rama en Origin es el mismo nombre local. git fetch origin-local les hace un seguimiento como origin-local/origin/<nombre> porque así es como git nombra las referencias de seguimiento remoto, no porque Origin elimine o reescriba el prefix.

Origin no la importa. La sincronización omite las ramas de GitHub llamadas origin u origin/... para que no puedan sobrescribir lo que hiciste push con origin push local.

Actualizar los últimos cambios

git pull origin main

Solución de problemas

Si clonar o hacer push fallan, confirma que hayas iniciado sesión con origin auth login. Consulta Instalar CLI de Origin.

Si tu shell muestra command not found: origin después de instalarlo, añade ~/.local/bin a tu PATH (para zsh: añade export PATH="$HOME/.local/bin:$PATH" a ~/.zshrc y luego ejecuta source ~/.zshrc). Los detalles están en la página de la CLI.