¿Cuál es la diferencia entre origin y upstream en GitHub?

GitHub es una plataforma en línea para alojar, compartir y controlar versiones de código. A menudo, los desarrolladores trabajan en proyectos con otros miembros del equipo y usan repositorios en GitHub para almacenar y colaborar en el código. Dos términos comunes que se usan en GitHub son "origin" y "upstream", que pueden confundir a los nuevos usuarios. En este artículo, explicaremos la diferencia entre ambos términos, su uso y su importancia en la colaboración en proyectos de código.
¿Qué es origin en GitHub?
En GitHub, origin es el término que se utiliza por defecto para el repositorio remoto de git clonado en tu máquina local. Cuando se crea un nuevo repositorio en GitHub y se realiza la clonación en tu máquina usando Git, se establece el origen o el punto inicial desde donde se ha realizado la clonación. El nombre de 'origin', es únicamente convencional, se puede usar cualquier otro nombre en su lugar, incluso podemos tener varias instancias de origin en nuestro repositorio.
El repositorio que clonamos originalmente es el "origin". Si realizas cambios en tu repositorio local con respecto al repositorio remoto, puedes enviar tus cambios al repositorio remoto usando el comando "git push".
¿Y qué es upstream en GitHub?
Por otro lado, upstream implica el repositorio remoto de git original en el que trabajan varios colaboradores, y desde el que se ha bifurcado el repositorio que se ha clonado a tu máquina local.
En otras palabras, upstream es un repositorio remoto que siempre será ajeno al origin. Es decir, se mantendrá ajeno a cualquier cambio que se realice en el origin y a cualquier colaborador que no tenga acceso a dicho repositorio.
El upstream sirve como repositorio de referencia para el trabajo colaborativo dentro de un proyecto y está diseñado para recibir pull requests de contribuciones y reparación de bugs, entre otros.
¿Por qué es importante conocer la diferencia entre origin y upstream en GitHub?
Es importante conocer la diferencia entre origin y upstream ya que te permitirá colaborar mejor en proyectos de código. Incluso si trabajas solo en tu proyecto, puedes utilizar repositorios remotos para tener una copia de seguridad en línea y poder acceder a tu código desde cualquier lugar.
En los proyectos de equipo, origin se usa para enviar tus cambios al repositorio remoto (es decir, enviar el código que has creado o editado), mientras que upstream se utiliza para recibir cambios de colaboradores (es decir, recuperar el código que ha creado o editado otra persona).
Ejemplos de código
Aquí algunos ejemplos de código:
- Para agregar un repositorio remoto:
- Para recuperar los cambios del repositorio remoto:
- Para enviar tus cambios al repositorio remoto:
git remote add origin https://github.com/el-usuario/repositorio.git
git pull upstream
git push origin
Conclusión
Origin y upstream son términos importantes en GitHub que se refieren a los repositorios remotos. Origin es el punto de partida de la clonación del repositorio en tu máquina local, y se usa para enviar tus cambios al repositorio remoto. Upstream es el repositorio original del que se bifurcó el proyecto y se usa para recibir cambios de colaboradores del proyecto. Al conocer la diferencia, te ayudará a trabajar mejor en proyectos de código y colaborar de manera efectiva con otros miembros del equipo.
Preguntas frecuentes
¿Puedo tener más de un origin en mi repositorio local?
Sí, es posible tener varios orígenes en el mismo repositorio local. Un enfoque común es tener un origen principal para enviar tu trabajo y un segundo origin que se refiere a otro repositorio remoto que se usa para la integración continua del código.
¿Es obligatorio tener un upstream en mi repositorio local?
No es obligatorio tener un repositorio remoto upstream en tu repositorio local. Sin embargo, si planeas colaborar en un proyecto, es una buena práctica añadir un upstream remoto para mantener tu repositorio de trabajo actualizado con los cambios realizados por otros miembros del equipo.
¿Qué sucede si envío los cambios a upstream en vez de a origin?
Enviar los cambios a upstream en lugar de a origin puede resultar en cambios no deseados para otros miembros del equipo. La práctica común es enviar los cambios que has realizado a tu propio repositorio remote origin. Además, enviar los cambios a upstream debe hacerse a través del proceso de pull requests.
¿Para qué sirve upstream en Git?
Upstream es utilizado en Git como un repositorio de referencia para trabajar en proyectos colaborativos. Es el repositorio remoto original desde el cual se bifurcó tu local y sirve como el lugar donde otros colaboradores pueden enviar sus pull requests. En otras palabras, representa el "master" del proyecto.
[nekopost slugs="retire-el-compromiso-de-la-rama-en-git,git-ignora-los-cambios-de-archivo-local,que-hace-git-rev-parse,conecte-el-repositorio-de-git-remoto,cambiar-git-url-de-origen-remoto,empujar-cambios-a-la-rama-especifica,determinar-cuando-se-creo-una-rama-git,diferencia-entre-git-rm-en-cache-x-y-reinicio-de-cabeza-x,trae-mi-proyecto-de-github"]

Deja una respuesta