Clonar, hacer push y actualizar
Origin se encuentra disponible actualmente en beta inicial. Puedes crear repositorios, hacer push y actualizar con Git, replicar desde GitHub, explorar y buscar código, abrir y fusionar pull requests y compartirlos con tu equipo de Cherri Code.
Envía todos tus comentarios a [email protected] para ayudarnos a mejorar el producto.
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}.gitEjemplo:
git clone https://origin.cursor.com/acme/checkout.gitClonar 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 loginConsulta 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 loginLuego, 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 mainPara 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.gitPara 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}.gitGitHub 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:
- Confirma que el remoto
origindel checkout es un repositorio de Origin replicado de forma entrante - Crea o actualiza un git remote llamado
origin-localenhttps://origin.cursor.com/{owner}/{repo}.git/local - Limita los refspecs de obtención y push de ese remoto a
refs/heads/origin/* - 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 localTras 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.
/local se activa por repositorio. Si git indica que el repositorio no se encuentra, es que el endpoint aún no está activado para ese repositorio. Los mensajes remote rejected por referencia indican que el servidor rechazó una referencia fuera de 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 referenciasorigin/<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
originyorigin/*. Esto es intencionado: una rama de GitHub con ese nombre no puede sobrescribir lo que hiciste push conorigin push local. - Hacer push a la URL de clonación.
git push origin origin/my-statesigue enviandoorigin/my-statea 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 mainSolució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.