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


Respuestas:


805

Esto debe entenderse en el contexto de las bifurcaciones de GitHub (donde se bifurca un repositorio de GitHub en GitHub antes de clonar esa bifurcación localmente).

  • upstreamgeneralmente se refiere al repositorio original que ha bifurcado
    (consulte también " Definición de" downstream"y upstream" "para obtener más información sobre el upstreamtérmino)
  • origin es tu tenedor: tu propio repositorio en GitHub, clon del repositorio original de GitHub

Desde la página de GitHub:

Cuando se clona un repositorio, tiene un control remoto predeterminado llamado originque apunta a su bifurcación en GitHub, no el repositorio original del que se bifurcó.
Para realizar un seguimiento del repositorio original, debe agregar otro control remoto llamadoupstream

git remote add upstream git://github.com/<aUser>/<aRepo.git>

(con aUser/aRepola referencia para el creador y el repositorio original que ha bifurcado)

Que va a utilizar upstreampara obtenerlo desde el repositorio original, (con el fin de mantener su copia local en sincronía con el proyecto que quiere contribuir a).

git fetch upstream

( git fetchsolo buscaría de originforma predeterminada, que no es lo que se necesita aquí)

Utilizará originpara tirar y empujar, ya que puede contribuir a su propio repositorio.

git pull
git push

(de nuevo, sin parámetros, 'origen' se usa por defecto)

Contribuirá de nuevo al upstreamrepositorio haciendo una solicitud de extracción .

tenedor y aguas arriba


11
También ayuda saber qué upstreames generalmente: stackoverflow.com/questions/2739376/…
— VonC

2
@MaxRydahlAndersen es cierto, pero me gusta usar Git sin envoltorio, por lo que mantendré esa convención (ascendente versus origen) por ahora.
— VonC

22
Con mucho, la mejor explicación de cómo funcionan los tenedores que he visto. Tienes mi voto a favor.
— CodeChimp

99
Gran trabajo en lo visual. Respuesta muy directa y comprensible. Esto era exactamente lo que estaba buscando.
— tayopi

1
@iamrudra si git remote -v muestra la misma url para origen y aguas arriba, entonces sí, está presionando al mismo repositorio remoto.
— VonC
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.